string是一种很常用的字符串类型,下面介绍它的一些用法
C++使用时要引用#include<string>头文件
1.string不支持c语言的scanf和printf
2.string 可以直接用字符串赋值
s="STL";
3.string如果没有被赋初值的话,string可以直接相加,如果没有赋初值,那么相加后结果就是加的那个字符
s=s+'s';//此时s1内正好有's'这一个字符,字符串也一样
s=s+'n'; //此时s1="sn"
4.可以用s.length()方法获取字符串的长度
5.利用迭代器可以给string对象插入字符
string::iterator it; //用insert给string对象插入字符 it=s.begin(); s.insert(it+3,'p'); //在string的第四个位置插入'p'字符
6.可以类似char数组进行遍历
for(int i=0;i<s.length();i++) { }
7.用printf输出字符串对象,c_str()将string对象转化为char*对象,返回const char*类型(可读不可改)指向字符数组的指针
printf(s.c_str());
8.sscanf的使用
char a1[10],a2[10],a3[10]; string ss1,ss2,ss3; sscanf("abc def ghi","%s %s %s",a1,a2,a3);//整型数字等其他格式类似,分隔符不一定要用空格,也可以用其他的 ss1=a1; ss2=a2; ss3=a3; cout<<ss1<<" "<<ss2<<" "<<ss3<<endl;
9.sprintf的使用
sprintf(a1,"%d",123);//将数值转换为string,打印到字符串中
10.string字符串中的字符可以用类似数组的方法访问,如s[3]
11.string中replace()方法的使用
s.replace(2,3,"no");//从第2个(0开始)字符开始的连续3个子字符串替换为"no"
12.string中find()方法的使用
cout<<s.find('n')<<endl;//查找成功则返回字符或字串的下标值(从0开始,注意包括空格) cout<<s.find("no")<<endl;//查找失败则返回4294967295
13.string中compare()方法的使用
cout<<s.compare("asd")<<endl;//若s比括号内字符串大则返回1,相等0,小于-1
14.string中erase()方法的使用
s.erase(it+3); s.erase(it,it+2);//左闭右开,即第0到1这两个元素
15.反向排序方法reverse
reverse(s.begin(),s.end());//对string对象中的指定区间进行反向排序,头文件#include<algorithm>
16.利用s.length()方法获取string的长度
17.s.empty()判断字符串是否为空 若为空,逻辑真,返回1,反之,返回0
18.string对象作为vector中的元素
vector<string>vt;//string对象作为vector元素 vt.push_back("good"); cout<<vt[0]<<endl; cout<<vt[0][3]<<endl; cout<<vt[0].length()<<endl;