string只能用cin和cout输入输出
string用printf输出
#include<string>
using namespace std;
int main(){
string s;
cin>>s;
printf("%s\n",s.c_str());
return 0;
}
+直接实现字符串的拼接
s3=s2+s1;
s2+=s1;
== != >= <=直接实现字符串大小的比较
s.length() s.size()直接测字符串的长度
**s.insert(pos,string)pos:位置的前面
insert(it,it2,it3)//具体看代码
#include<string>
using namespace std;
int main(){
string str="abcxyz",str2="opq";
str.insert(3,str2);
cout<<str;
return 0;
}
#include<string>
using namespace std;
int main(){
string str="abcxyz",str2="opq";
str.insert(str.begin()+3,str2.begin(),str2.end());
cout<<str;
return 0;
}
结果:abcopqxyz
erase()
erase是删除迭代器
str.erase(str.begin()+4);
str.erase(3,2);//删除从3号位开始的2个字符
clear()
str.clear()清空字符串
substr()
str.substr(pos,len);
#include<string>
using namespace std;
int main(){
string str="abcxyz";
cout<<str.substr(0,3);//输出从0位置,长为3的字符串
return 0;
}
string::npos == -1||4294967295;
find()
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str = "Thank you for your smile";
string str2 = "you";
string str3 = "me";
if(str.find(str2)!=string::npos){
cout<<str.find(str2)<<endl;
}
if(str.find(str2,7)!=string::npos){
cout<<str.find(str2,7)<<endl;
}
if(str.find(str3)!=string::npos){
cout<<str.find(str3)<<endl;
}
else{
cout<<"i know there is no position for me"<<endl;
}
return 0;
}
结果:
6
14
i kown there is no position for me;
replace
str.replace(pos,len,str2);//str从pos号位开始,长度为len的字串替代
str.replace(it1,it2,str2);
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str = "Maybe you will turn around.";
string str2 = "will not";
string str3 = "surely";
cout<<str.replace(10,4,str2)<<endl;
cout<<str.replace(str.begin(),str.begin()+5,str3)<<endl;
return 0;
}