00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00030 #ifndef __CLAW_STRING_ALGORITHM_HPP__
00031 #define __CLAW_STRING_ALGORITHM_HPP__
00032
00033 namespace claw
00034 {
00035 namespace text
00036 {
00037 template<typename StreamType, typename StringType>
00038 StreamType& getline( StreamType& is, StringType& str );
00039
00040 template<class StringType>
00041 void trim_left( StringType& str,
00042 const typename StringType::value_type* const s = " " );
00043
00044 template<class StringType>
00045 void trim_right( StringType& str,
00046 const typename StringType::value_type* const s = " " );
00047
00048 template<class StringType>
00049 void trim( StringType& str,
00050 const typename StringType::value_type* const s = " " );
00051
00052 template<class StringType>
00053 void squeeze( StringType& str,
00054 const typename StringType::value_type* const s );
00055
00056 template<typename T, class StringType>
00057 bool is_of_type( const StringType& str );
00058
00059 template<class BackInsertion, class StringType>
00060 void split( BackInsertion& sequence, const StringType& str,
00061 const typename StringType::value_type sep );
00062
00063 }
00064 }
00065
00066 #include <claw/impl/string_algorithm.tpp>
00067
00068 #endif // __CLAW_STRING_ALGORITHM_HPP__