push_back: append character to string
erase: erase characters from string
string str ("This is an example phrase.");
string::iterator it;
str.erase (10,8);
cout << str << endl; // "This is an phrase."
substr:
string str="We think in generalities,but we live in details.";
string str2=str.substr(12,12);
replace:
str.replace(9,5,str2);
str.replace(8,6,"a short");
istream& getline(istream& is,string& str)//getline的原型
void swap(string& lhs,string& rhs)
//algorithm中replace的用法
template < class ForwardIterator, class T > void replace ( ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value );
replace(path.begin(),path.end(),separ,native);
c_str()是把string转到char*然后就可以调用库函数了
string add_to="hello!";
const char* cfirst=add_to.c_str();
char* copy=new char[strlen(cfirst)+1];
strcpy(copy,cfirst);
transform的用法
template < class InputIterator, class OutputIterator, class UnaryOperator > OutputIterator transform ( InputIterator first1, InputIterator last1, OutputIterator result, UnaryOperator op ); template < class InputIterator1, class InputIterator2, class OutputIterator, class BinaryOperator > OutputIterator transform ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryOperator binary_op );
tramsform(first.begin(),first.end(),second.begin(),op_increase);
其中op_increse是函数指针,
algorithm中remove的使用:
remove(path.begin(),path.end(),'\"') 返回的是遍历的
//remove掉之后用erase把长度相应的减小
path.erase(std::remove(path.begin(),path.end(),'\"'),path.end());
std::string getXMLHeader(int xml_version)
{
std::ostringstream ostr;
ostr<<"...";
...
return ostr.str();
}
函数:int strcmp (const char *s1, const char *s2)
这个函数用来比较s1和s2字符串,这个函数将返回一个值,它的符号与第一对不同的字符的比较结果相关。
如果两个字符串相等的话,strcmp将返回0。
如果s1是s2的一个子串的话,s1小于s2
此外还有函数
int strncmp (const char *s1, const char *s2, size_t size)
此函数与strcmp极为类似。不同之处是,strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。