C++模板库STL——string

emmmm感觉C++有点古怪又好用
代码:

#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;

int main(){
	//string的使用 
	string str = "abcd";
	for(int i = 0;i <str.length();i++){
		printf("%c",str[i]);
	}
	printf("\n");
	string str1;
	cin>>str1;
	cout<<str1;
	printf("\n");
	//将string型str使用c_str()变为字符数组 
	printf("%s\n",str.c_str());
	//使用迭代器
	for(string::iterator it = str1.begin()+3;it != str1.end();it++){
		printf("%c",*it);
	}
	//string的加法,字符串拼接
	string stra = "abc",strb = "xyz",str3;
	str3 =  stra + strb;
	stra += strb;
	cout<<stra<<endl;
	cout<<str3<<endl;
	//字符串的插入
	string str4 = "abchhdhgghjsj",str5 = "xxx";
	//str4.insert(3,str5);
	str4.insert(str4.begin()+3,str5.begin(),str5.end());
	cout<<str4<<endl;
	
	//删除几号位 
	str4.erase(str4.begin()+4);
	cout<<str4<<endl;
	//删除区间内的元素 
	str4.erase(str4.begin()+1,str4.end()-6);
	cout<<str4<<endl;
	//删除从几号位开始的(持续)几个字符
	str4.erase(3,2);
	cout<<str4<<endl; 
	//清空字符串
	str4.clear();
	printf("%d\n",str4.length());
	
	//substr()返回特定子串
	string str8 = "Thank you for your smile.";
	cout<<str8.substr(0,5)<<endl;
	cout<<str8.substr(14,4)<<endl;
	cout<<str8.substr(19,5)<<endl;
	if(string::npos == -1){
		cout<<"-1 is true"<<endl;
	}
	//不同的电脑上数值可能不同 
	if(string::npos == 4294967295){
		cout<<"4294967295 is also true"<<endl;
	}
	//find()的使用
	string str9 = "good good study,dayday up.";
	string str10 = "study";
	string str11 = "my";
	string str12 = "up";
	//查找这个字符串,返回起始位置 
	if(str9.find(str10) != string::npos){
		cout<<str9.find(str10)<<endl;
	}
	//从5位置开始查找字符串,返回和上面一样 
	if(str9.find(str10,5) != string::npos){
		cout<<str9.find(str10,5)<<endl;
	}
	if(str9.find(str11) != string::npos){
		cout<<str9.find(str11)<<endl;
	}
	else{
		cout<<"i can not find it."<<endl;
	}
	//替换字符串部分
	string str13 = "love";
	string str14 = "like";
	cout<<str9.replace(10,5,str13)<<endl;
	cout<<str9.replace(str9.begin()+5,str9.begin()+10,str14)<<endl; 
	return 0;
}
发布了111 篇原创文章 · 获赞 3 · 访问量 2339

猜你喜欢

转载自blog.csdn.net/weixin_42377217/article/details/104064664
今日推荐