一,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;
}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐