#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string str="abcdefgh";
//按下标去访问
for(int i=0;i<str.length();i++)
cout<<str[i]<<" ";
cout<<endl;
cout<<"length:"<<str.length()<<endl;
//string类转化为C语言适用的字符数组
char ch[10];
strcpy(ch,str.c_str()); //不能写成ch=str.c_str();
cout<<ch<<endl;
//按迭代器去访问
string::iterator it;
for(it=str.begin();it!=str.end();it++)
cout<<*it;
cout<<endl;
//字符串拼接
string str1="hello ",str2="world.",str3;
str3=str1+str2; //拼接赋给str3
str1+=str2; //str2直接拼接到str1上
cout<<"str3:"<<str3<<endl;
cout<<"str1:"<<str1<<endl;
//字符串比较大小(字典序)
string str4="abc",str5="xyz";
if(str4<=str5)
cout<<"str4<=str5"<<endl;
else
cout<<"str4>str5"<<endl;
//字符串大小
string str6="qwert";
cout<<"length:"<<str6.length()<<endl; //两方法大致一致
cout<<"size:"<<str6.size()<<endl;
//字符串中间插入
string str7="abcdg",str8="EF";
str7.insert(4,str8); //在str7[4]处插入字符串str8(即从[4]开始替代)
cout<<"insert1:"<<str7<<endl;
str7.insert(str7.begin()+1,str8.begin(),str8.end());
cout<<"insert2:"<<str7<<endl;
//删除字符串中元素
string str9="abcdefgh";
str9.erase(str9.begin()+2); //删除单个元素,参数为迭代器it(删除str9[2])
cout<<"str9:"<<str9<<endl;
str9.erase(str9.begin()+4,str9.end()); //删除一个区间的元素,区间左闭右开(删除str9[4]~末尾)
cout<<"str9:"<<str9<<endl;
str9.erase(1,2); //删除从1号位开始的2个字符
cout<<"str9:"<<str9<<endl;
//清空字符串内容
string str10="abc";
cout<<"str10.length:"<<str10.length()<<endl;
str10.clear();
cout<<"str10.length:"<<str10.length()<<endl;
//寻找子串
string strA="abcdefgh",strB="bcd",strC="ddd";
if(strA.find(strB)==string::npos) //寻找到则返回子串第一个字符所在位置,否则返回string::npos
cout<<"strB doesn't exist."<<endl;
else
cout<<"strB exist in strA:"<<strA.find(strB)<<endl;
if(strA.find(strC)==string::npos)
cout<<"strC doesn't exist."<<endl;
else
cout<<"strC exist in strA:"<<strA.find(strC)<<endl;
//替换子串
//str.replace(pos,len,str2)把str从pos号尾开始,长度为len的子串替换为str2
//str.replace(it1,it2,str2)把str的迭代器[it1,it2)范围的子串替换为str2
string strD="LiLi is turning around.",strF="Jake",strG="LiLi";
cout<<"strD:"<<strD<<endl;
strD.replace(strD.find(strG),strD.find(strG)+4,strF); //使用的方法二
cout<<"strD:"<<strD<<endl;
return 0;
}