1.初始化:
string s;//此时s是一个空串
string s("haha");//直接初始化
string s = "haha";//拷贝初始化,效果和直接相同,但字符过多时拷贝浪费时间
string s(10,'a');//s中有10个a
2.读写和输入:
输入和读写只能用 cin 和 cout cin>>s;//输入s; cout<3.相关操作:
1. append();//在字符串末尾添加字符串 s="haha"; s.append("xid");//s.append('a');会报错 s=="hahaxid"; 2. push_back();//在末尾添加一个字符 s="haha"; s.push_back('a');//s.push_back("a");会报错 s=="hahaa"; 3. insert();//在任意位置插入一个字符 s="haha"; s.insert(s.begin(),'x');//同样s.insert(s.begin(),"x");会报错 s=="xhaha"; 4. erase();//删除字符或子串 s="haha"; s.erase(s.begin()); s=="aha";//删除s[0]; s.erase(s.begin(),s.begin()+2);//删除[0,2)区间的字符 s=="ha";//删除s[0],s[1] 5. clear();//清空字符串 s="haha"; s.clear(); s==""; 6. empty();//判断是否为空,非空为true,空为false s="haha"; s.empty()==true; s=""; s.empty()==false; 7. size();//返回字符串字符的数量 s="haha"; s.size()==4; 8. find();//在字符串中查找字符串或字符返回第一次找到他们的位置 s="haha"; int position = s.find('a',0);//从s[0],位置开始找,position==1 s.find('a',1)==1; s.find('a')==1; s.find('a',2)==3; s.find('e',0)==-1;//找不到返回-1 s.find("haha",0)==0; s.find("haha")==0; s.find("haha",1)==-1; s.find("ha",1)==2; 如果没有找到可以用s.find()!=-1 或s.find()!=string::npos 来判断,效果是一样的 9. length();//返回字符串长度和size用法一样 s="haha"; s.length()==4; 10. replace();//替换字符串 s="012345"; s.replace(s.begin(),s.begin()+2,"888");//替换区间[0,1) s=="8882345"; 11. substr();//返回某个子字符串 s="012345"; s.substr(0,2)=="01"//[0,2)全是左闭右开3.访问:
1. 下标访问 s="haah" for(int i=0;i4.字符处理:
#includechar c; isalnum(c);//字母或数字时为真 isalpha(c);//字母时为真 isdigit(c);//数字时为真 islower(c);//小写字母时为真 isupper(c);//大写字母时为真 tolower(c);//将大写字母转换成小写字母 toupper(c);//将小写字母转换成大写字母 isxdigit(c);//是十六进制数字时为真 ispunct(c);//是标点符号时为真 5.字符串处理
s="aaaaa"; transform(s.begin(),s.end(),s.begin(),toupper);//全部转换成大写 s=="AAAAA"; transform(s.begin(),s.end(),s.begin(),tolower);//全部转换成小写 s+s=="aaaaaaaaaa"; >=,>,<=,< 利用字符在字典中的顺序进行比较



