string_convert.cxx

Go to the documentation of this file.
00001 /* -*- mode:c++ -*- */
00002 
00014 #include "string_convert.h"
00015 
00016 #ifdef SSTREAM_DEFECT
00017 #include <strstream>
00018 using std::ostrstream;
00019 #else
00020 #include <sstream>
00021 using std::ostringstream;
00022 #endif
00023 
00024 #include <algorithm>
00025 #include <cassert>
00026 
00027 using std::string;
00028 
00029 namespace hippodraw {
00030 
00031   namespace String {
00032 
00033     string  convert ( int i )
00034     {
00035 #ifdef SSTREAM_DEFECT
00036       ostrstream strm_text;
00037 #else
00038       std::ostringstream strm_text;
00039 #endif
00040       strm_text << i;
00041 #ifdef SSTREAM_DEFECT
00042       strm_text << std::ends; // not needed for std class.
00043 #endif
00044 
00045       return string ( strm_text.str() );
00046     }
00047 
00048     string  convert ( unsigned int i )
00049     {
00050 #ifdef SSTREAM_DEFECT
00051       ostrstream strm_text;
00052 #else
00053       std::ostringstream strm_text;
00054 #endif
00055       strm_text << i;
00056 #ifdef SSTREAM_DEFECT
00057       strm_text << std::ends; // not needed for std class.
00058 #endif
00059 
00060       return string ( strm_text.str() );
00061     }
00062 
00063     string convert ( double v )
00064     {
00065 #ifdef SSTREAM_DEFECT
00066       ostrstream strm_text;
00067 #else
00068       std::ostringstream strm_text;
00069 #endif
00070       strm_text << v;
00071 #ifdef SSTREAM_DEFECT
00072       strm_text << std::ends; // not needed for std class.
00073 #endif
00074 
00075       return string ( strm_text.str() );
00076     }
00077 
00078     bool ci_equal(char ch1, char ch2)
00079     {
00080       return toupper((unsigned char)ch1) == toupper((unsigned char)ch2);
00081     }
00082     
00083     size_t ci_find(const string& str1, const string& str2)
00084     {
00085       string::const_iterator pos = 
00086           std::search(str1. begin ( ), str1. end ( ), str2.
00087                begin ( ), str2. end ( ), ci_equal);
00088       if (pos == str1. end ( ))
00089         return string::npos;
00090       else
00091         return pos - str1. begin ( );
00092     }
00093 
00094   } // end namespace String
00095 } // end namespace hippodraw

Generated for HippoDraw Class Library by doxygen