#include <string>
using namespace std;
1.定义
//定义,初始化
string str;
string str="abc";
//若要输入输出整个字符串,只能cin\cout
string str;
cin>>str;
cout<<str;
//或者将字符串转换为字符数组
printf("%s\n",str.c_str());
2.访问
//1:通过下标访问
string str="abc";
for(int i=0;i<str.length();i++){
printf("%c",str[i]);
}
//2:通过迭代器访问
string str="abcd";
for(string::iterator it=str.begin();it!=str.end();it++){
printf("%c",*it);
}
//string和vector一样,支持直接对迭代器进行加减某个数字
printf("%c",*(str.begin()+3));
3.函数
<1> operator+=
string str1="abc",str2="xyz";
string str3=str1+str2;
str1+=str2;
cout<<str1<<endl;
cout<<str3<<endl;
<2>compare operator
使用==,!=,<,<=,>,>=比较大小(字典序)
<3>length()/size()
string str="abcxyz";
printf("%d %d",str.length(),str.size());
<4>insert()
string str1="abcxyz",str2="opq";
str1.insert(3,str2);//在3位置插入str2
str1.insert(str1.begin()+3,str2.begin(),str2.end());
//从str1的3号位置开始插入,
//被插入字符串的头尾迭代器str2.begin(),插入字符串的结束str2.end()
<5>erase()
string str="abcxyz";
//1:删除单个位置
str.erase(str.begin()+4);//删除4号位置的元素
//2:删除区间
str.erase(str.begin()+2,str.end()-1);//[begin,end)
str.erase(3,2);//(pos,length)
<6>clear()
str.clear();
<7>substr()
string str="abcxyz";
str.substr(0,5);//(pos,length)
<8>string::nops
其本身的值为-1,但由于是unsigned_int类型,因此也可以认为是unsigned_int类型的最大值
(-1或者4294967295)
可以作为find函数失配时的返回值
<9>find()
string str="Thank you for your smile";
string str2="you";
string str3="me";
if(str.find(str2)!=string::npos){//返回str2在str中第一次出现的位置
cout<<str.find(str2)<<endl;
}
if(str.find(str2,7)!=string::npos){//返回str2从str的7号位置开始,第一次出现的位置
cout<<str.find(str2,7)<<endl;
}
<10>replace()
cout<<str.replace(10,4,str2)<<endl;// (pos,len,str2)
cout<<str.replace(str.begin(),str.begin()+5,str3);// ([it1,it2),str3)
<11>to_string()
string pi = "pi is " + to_string(3.1415926);
本文详细介绍了C++中字符串的基本操作,包括定义、初始化、输入输出、访问、常用函数如`operator+=`、`compare`、`length()`、`insert`、`erase`、`clear`、`substr`、`find`、`replace`、`to_string()`等,以及如何在实际编程中应用这些函数来高效处理字符串。

被折叠的 条评论
为什么被折叠?



