string_convert.cxx
Go to the documentation of this file.
1 /* -*- mode:c++ -*- */
2 
14 #include "string_convert.h"
15 
16 #ifdef SSTREAM_DEFECT
17 #include <strstream>
18 using std::ostrstream;
19 #else
20 #include <sstream>
21 using std::ostringstream;
22 #endif
23 
24 #include <algorithm>
25 #include <cassert>
26 
27 using std::string;
28 
29 namespace hippodraw {
30 
31  namespace String {
32 
33  string convert ( int i )
34  {
35 #ifdef SSTREAM_DEFECT
36  ostrstream strm_text;
37 #else
38  std::ostringstream strm_text;
39 #endif
40  strm_text << i;
41 #ifdef SSTREAM_DEFECT
42  strm_text << std::ends; // not needed for std class.
43 #endif
44 
45  return string ( strm_text.str() );
46  }
47 
48  string convert ( unsigned int i )
49  {
50 #ifdef SSTREAM_DEFECT
51  ostrstream strm_text;
52 #else
53  std::ostringstream strm_text;
54 #endif
55  strm_text << i;
56 #ifdef SSTREAM_DEFECT
57  strm_text << std::ends; // not needed for std class.
58 #endif
59 
60  return string ( strm_text.str() );
61  }
62 
63  string convert ( double v )
64  {
65 #ifdef SSTREAM_DEFECT
66  ostrstream strm_text;
67 #else
68  std::ostringstream strm_text;
69 #endif
70  strm_text << v;
71 #ifdef SSTREAM_DEFECT
72  strm_text << std::ends; // not needed for std class.
73 #endif
74 
75  return string ( strm_text.str() );
76  }
77 
78  bool ci_equal(char ch1, char ch2)
79  {
80  return toupper((unsigned char)ch1) == toupper((unsigned char)ch2);
81  }
82 
83  size_t ci_find(const string& str1, const string& str2)
84  {
85  string::const_iterator pos =
86  std::search(str1. begin ( ), str1. end ( ), str2.
87  begin ( ), str2. end ( ), ci_equal);
88  if (pos == str1. end ( ))
89  return string::npos;
90  else
91  return pos - str1. begin ( );
92  }
93 
94  } // end namespace String
95 } // end namespace hippodraw

Generated for HippoDraw Class Library by doxygen