同时转载另一篇《string类成员函数详解》
导入头文件 #include <string>,标准库string类型表示可变长的字符序列。
在读操作中需要注意: (1)cin>>s; 自动忽略开头的空白(空格符、换行符、制表符等),只读取有效字符直到遇到下一处空白。 (2)getline(cin,s); 从给定的输入流中读取字符,直到遇到换行(此时换行符也被读进来)。将所读的内容存入string对象中(此时不存换行符)。 (3)getline(cin,s,’a’); 读入操作直到‘a’结束,其中任何字符包括’\n’都能够读入。
s.size()的返回类型 size函数的返回类型是string::size_type。这种类型表示的是一个无符号类型的值,并且能够存放下任何string对象的大小。
(1)插入
s.insert(int n,char p); //把字符串p插入到n的位置 s.insert(p,n,t); //迭代器p元素之前插入n个t的副本 s.insert(p,b,e); //迭代器p元素之前插入迭代器b到e之间的所有元素 s.insert(p,s2,poe2,len); //在下标p之前插入s2下标从poe2开始长度为len的元素 s.insert(pos,cp,len); //下标pos之前插入cp数组的前len个元素。(2)替换
s.assign(b,e); //用迭代器b到e范围内的元素替换s s.assign(n,t); //用n个t的副本替换s a.assign(s1,pos2,len);//从s1的下标pos2开始连续替换len个。 s.replace ( 3 , 3 , " good " ) ; //从第三个起连续三个替换为good(3)截取字串
s.substr(i,j) //截取s串中从i到j的子串(4)删除
s.erase( it )||s.erase ( first , second ) ; //删除迭代器或迭代器范围的字符(5)其他函数
s.find ( " cat " ) ; //超找第一个出现的字符串”cat“,返回其下标值,查不到返回 4294967295,也可查找字符; s.append(args); //将args接到s的后面 s.compare ( " good " ) ; //s与”good“比较相等返回0,比"good"大返回1,小则返回-1; reverse ( s.begin(), s.end () ); //反向排序函数,即字符串反转函数sstream头文件包含ostringstream、istringstream、stringstream这三个子类。
istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输入输出操作。 #include <iostream> #include <string> #include <sstream> using namespace std; //c++方法:将数值转换为string string convert_to_string(double x) { ostringstream o; if(o << x) return o.str(); return "conversion error"; } //c++方法,将string转化为数值 double convert_from_string(const string &s) { istringstream i(s); double x; if(i >> x) return x; return 0.0; } int main(int argc,char *argv[]) { string cc=convert_to_string(1976); cout<<cc<<endl; string dd="115165"; int p=convert_from_string(dd)+2; cout<<p<<endl; return 0; }