变量名.erase(位置,长度);删除从指令位置开始连续长度个字符
string str;
str="abcde";
str.erase(2,2);
cout<<str;
//结果为abe
变量名.replace(位置,长度,变量名);从位置开始连续长度的字符串替换为给定字符
string str1="abcde",str2="789";
str1.replace(2,1,str2);
cout<<str1;
//结果为ab789de
tolower(字符);将字符变为小写,如果为字符串,必须一个一个变化
toupper(字符);将字符串变为大写,其他同上。
变量名.substr(位置,长度);从位置开始,连续长度个字符组成一个新的字符串
string str1="abcde",str2;
str2=str1.substr(2);
//只有一个参数时默认为取到结尾
cout<<str2;
//结果为cde
reverse(起始,结束);从起始至结束翻转。
注意:不要写 变量名. 因为没有返回值
string str="abcde";
reverse(str.begin()+1,str.end()-1);
cout<<str;
//结果为adcbe
变量名.length();返回变量的有效长度
string str="abcde"
cout<<str.length();
//结果为5
getline(cin,变量名);带空格输入
string str;
getline(cin,str);//输入为a b cd
cout<<str;//输出为a b cd
变量名.find(字符串,起始位置);返回变量中起始位置开始的第一次出现字符串的第一个字符的下标
string str="abcabcabc";
cout<<str.find("abc",4);
//输出为6
变量名.rfind(字符串);返回变量中从后往前的第一次出现字符串的第一个字符的下标
string str="ababab";
cout<<str.rfind("ab");
//输出为4
变量名.insert(位置,字符串);在变量下标为位置的地方插入字符串
string str="abcde";
str.insert(2,"123");
cout<<str;
//输出为ab123cde
strcmp(变量名1,变量名2);使用ASCLL码比较两个变量
注意:要是C风格的字符串,即要在比较时在变量名后加上.c_str()
就是比赛时不知道这个,我手打了一个strcmp……
string str1="abc",str2="abc",str3="abcd",str4="ab";
cout<<strcmp(str2.c_str(),str1.c_str())<<' ';
cout<<strcmp(str3.c_str(),str1.c_str())<<' ';
cout<<strcmp(str4.c_str(),str1.c_str())<<' ';
//输出为0 1 -1
但是更推荐用==,>,<的写法
仅属个人笔记,可能有错误、遗漏
欢迎指出