1、string对象支持下标操作
以下代码是正确的:
string str1="hello";
str1[2]='o';
cout<<str1<<endl;
执行结果为:
heolo
2、用string对象或C类型字符串的某个片段来构造新的string对象的构造函数有4种
以下代码列出了4种以某个字符串的第i个字符和第j个字符之间的子字符串构造新字符串的方法:
int i=5,j=11;
string str="hello who are you?";
char c_str[]="hello who are you?";
string str1(str.begin()+i-1,j-i+1); //method one
string str2(str,i-1,j-i+1); //method two
string str3(c_str+i-1,j-i+1); //method three
string str4(c_str,i-1,j-i+1); //method four
3、C++的string类是通过封装C类型的字符串来实现的。C++string类的length方法返回的长度不包含其所封装的C类型字符串的结尾'\0'。
4、判断一个C++string对象是否为空(没有存储任何内容),可以用一下两种方法:
string str; //str为空
if(str.length()==0)
cout<<"字符串为空"<<endl; //方法一
if(str[0]=='\0')
cout<<"字符串为空"<<endl; //方法二
5、C++string类的append方法可以用来向string对象追加字符串。
用法如下:
string str;
str.append("hello");
6、C++string类的insert方法可以向C++string对象中插入一段字符串
用法如下:
string str1="hello, who are you?";
string str2="hi";
str2.insert(str2.end(),str1.begin()+5,str1.end());
cout<<str2<<endl;
以上代码片段的执行结果为:
hi, who are you?
注意:插入的内容不包括str1.endl()所对应的参数子相的值7、C++string类的erase方法可以删除C++string对象的某段子字符串
用法如下:
string str="hello, who are you?";
str.erase(str.begin(),str.begin()+7);
cout<<str<<endl;
以上代码片段的执行结果为:
who are you?
注意:删除的内容不包括str.begin()+7对应的参数所指向的内容。