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