一,string中的的字符串输入
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string ss;
getline(cin,ss);//空格也读入,遇到换行符结束
for(int i=0;i<ss.length();i++) cout<<ss[i];
for(int i=0;i<ss.size();i++) cout<<ss[i];
//sizeof(ss) 大小只有8
cout<<endl<<ss;
return 0;
}
二,string中的字符串查找
1).find
查找字符串第一次出现的下标
2).rfind
查找字符串最后一次出现的下标
样例
查找 zero
zerooreezorezerozzzero
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string ss;
getline(cin,ss);
if(ss.find("zero")!=ss.npos)//如果没有找到就会返回值 string::npos(这个数很大,不用理会它)
{
cout<<ss.find("zero")<<endl;//他返回的是第一个下标
cout<<ss.rfind("zero")<<endl;
}
return 0;
}
三,string中的字符串的比较
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s1="asdasdadas";
string s2="bbbb";
s2>s1?cout<<s2:cout<<s1;
return 0;
}
四,string中的字符串相加,赋值
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s1="dada";
string s2=" ";
string s3="qwq";
cout<<s1+s2+s3<<endl;
string s4=s3+s2+"qwq";
//再相加的时候至少有一个是string类
cout<<s4<<endl;
s1=s3;
cout<<s1+s2+s3<<endl;
return 0;
}
string中的empty
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string ss;
//判断是否为空
cout<<ss.empty()<<endl;//他返回的是布尔类型,空返回true(1)
ss="aaa";
cout<<ss.empty()<<endl;//非空返回false(0)
return 0;
}
五,string中字符串的插入与删除
样例
asdadadaabaaa
asdadadaab123aaa
asdadaab123aaa
asda
1
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string ss;
getline(cin,ss);
cout<<ss.insert(ss.find("ab")+2,"123")<<endl;
//ss.find();函数返回的是首字母的下标;
ss.erase(4,2);//从下标4开始删除2个
cout<<ss<<endl;
ss.erase(4);//从下标4开始删除全部
cout<<ss<<endl;
ss.clear();//全部清空
cout<<ss.empty();
return 0;
}
六,string中的替换字符
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
{//应用一
string s="0123456";
string str="ABCD";
s.replace(2,2,str);
//在s的pos=2位置往后len=2字符(“23”)替换为"ABCD"
cout<<s<<"\n";
}
{//应用二
string s="0123456";
string str="ABCD";
s.replace(2,2,str,1,2);
//s在s的pos=2位置往后len=2个字符(“23”)替换为“BC”(str中subpos=1往后两个位置)
cout<<s<<"\n";
}
{//应用三
string s="0123456";
char str[]="ABCD";
s.replace(2,2,str,1,2);
//s在s的pos=2位置往后len=2个字符(“23”)替换为“BC”(str中subpos=1往后两个位置)
cout<<s<<"\n";
}
{//应用四
string s="0123456";
s.replace(2,2,"ABCD",2);
//在指定位置(pos=2,len=2)插入“ABCD”前两个字符
cout<<s<<"\n";
}
{//应用五
string s="0123456";
s.replace(2,2,5,'A');
//在指定位置(pos=2,len=2)插入5个'A';
cout <<s<<"\n";
}
{//应用六
//需要注意的是迭代器操作中第二个参数不再是len而是位置
string s="0123456";
string str="ABCD";
string::iterator it=s.begin();
s.replace(it,it+2,str);
//s在s的pos=2位置往后len=2个字符(“23”)替换为“BC”(str中subpos=1往后两个位置)
cout<<s<<"\n";
}
return 0;
}