直接上代码:
#include<cstdio> #include<iostream> //cin cout 在 iostream头文件中 而不是stdio.h #include<string> using namespace std; int main(){ string str = "abcdefg"; for(int i=0;i<str.length();i++){ printf("%c",str[i]); } printf("\n"); //读入和输出整个字符串 只能用cin和cout string str1; cin>>str1; cout<<str1; printf("\n"); //printf来输出 string 需要使用c_str() 将string类型转化为字符数组进行输出 string str2 = "hello world"; printf("%s",str2.c_str()); printf("\n"); for(string::iterator it = str2.begin();it!=str2.end();it++){ printf("%c",*it); } string::iterator it = str2.begin(); //只有vector和string可以有这种写法 即迭代器可以直接加 for(int i=0;i<str2.length();i++){ printf("%c",*(it+i)); } printf("\n"); //string的拼接 string str3 = str + " " +str2; //直接相加 空格也可以直接在里面加 //或者 str+=str2; cout<<str3<<endl; //endl表示回车 cout<<str<<endl; //两个string类型的可以直接使用 == 、!=、<、<=、>、>=进行比较 按照字典序 //str.length() == str.size() //表示把str2插入在str的3号位开始 str = "abcdefg"; str.insert(3,str2); cout<<str<<endl; //或者 str = "abcdefg"; str.insert(str.begin()+3,str2.begin(),str2.end()); cout<<str<<endl; //erase() 的两种删除方法与前面一致 (删除单个元素 删除一个区间的元素) //还有一种用法 str.erase(pos,length) pos为要删除的起始位置 length为要删除的长度 str.erase(3,2); //即删除he cout<<str<<endl; //clear() 清空 用法一致 //返回子串 substr(pos,len) string str4 = "Thank you for your smile."; cout<<str4.substr(0,5)<<endl; cout<<str4.substr(14,4)<<endl; cout<<str4.substr(19,5)<<endl; //string::npos用于作为find函数失配时的返回值 printf("%d\n",string::npos); //本身的值为 -1 (可以认为是unsigned_int类型的最大值) //find() 查找到子串第一次出现的下标 string str5 = "you"; string str6 = "me" ; if(str4.find(str5)!=string::npos){ cout<<str4.find(str5)<<endl; }else{ cout<<"sorry"<<endl; } if(str4.find(str5,7)!=string::npos){ //表示从str5的7号位开始向后查找 cout<<str4.find(str5,7)<<endl; //这时匹配到的其实是 your }else{ cout<<"sorry"<<endl; } if(str4.find(str6)!=string::npos){ cout<<str4.find(str6)<<endl; }else{ cout<<"sorry"<<endl; } //replace() 替换 //str.replace(pos,len,str2) 表示从pos位开始 len长度的字符串 全部换成str2 //str.replace(it1,it2,str2) 表示把str的迭代器 [it1,it2) 的子串换成str2 cout<<str4.replace(6,3,str6)<<endl; //空格不占长度 cout<<str4.replace(str4.begin(),str4.begin()+5,str6)<<endl; return 0; }
运行结果: