00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef IXLIB_STRING
00011 #define IXLIB_STRING
00012
00013
00014
00015
00016 #include <string>
00017 #include <ixlib_base.hh>
00018 #include <ixlib_exgen.hh>
00019
00020
00021
00022
00023 namespace ixion {
00024 template<class InputIterator>
00025 inline string concat(InputIterator first,InputIterator last,string const &sep = " ") {
00026 string str;
00027 while (first != last) {
00028 if (str.size()) str += sep;
00029 str += *first++;
00030 }
00031 return str;
00032 }
00033
00034
00035
00036
00037 string findReplace(string const &target,string const &src,string const &dest);
00038 string findReplace(string const &target,char* src,char *dest);
00039 string findReplace(string const &target,char src,char dest);
00040 string upper(string const &original);
00041 string lower(string const &original);
00042 string removeLeading(string const &original,char ch = ' ');
00043 string removeTrailing(string const &original,char ch = ' ');
00044 string removeLeadingTrailing(string const &original,char ch = ' ');
00045 string parseCEscapes(string const &original);
00046
00047
00048
00049
00050 class string_hash {
00051 public:
00052 unsigned long operator()(string const &str) const;
00053 };
00054 }
00055
00056
00057
00058 #endif