C++ string的使用
在了解如何使用string类之前,我们先来看看C语言中使用字符串有多麻烦:
调用头文件:cstring
定义一个C字符串:
char str1[51]="Hello World";
char str2[51]="你好,世界";
printf("%s \n %s",&str1,&str2);
判断两个字符串是否相等:
if(strcmp(str1,str2))
//do sth.
后续赋值:
strcpy(str1,str2);
现在来看看string是如何使用的:
string类的成员函数:
名称 | 功能 |
---|---|
构造函数 | 初始化字符串 |
析构函数 | 销毁字符串 |
= | 赋值 |
+,+ =,append( ),push_back() | 拼接字符串 |
insert () | 插入字符 |
erase() | 删除字符 |
clear() | 移除全部字符(相当于="") |
resize() | 改变字符数量 |
replace() | 替换字符 |
!=,==,<,<= ,>=,>, | 比较字符串 |
c_str() | 将内容以 C - string 形式返回 |
substr() | 返回子字符串 |
size(),length() | 返回字符串长度 |
find() | 搜寻某子字符串或字符 |
begin( ),end() | 提供正向迭代器支持 |
rbegin(),rend() | 提供逆向迭代器支持 |
[],at() | 返回某个位置的字符 |
调用头文件:string
string str1;//初始化字符串,空字符串
string str2 = str1; //拷贝初始化,其内容等于s1
string str3 = "I am b"; //直接初始化
string str4(10, 'a'); //s4存的字符串是aaaaaaaaaa
string str5(str4); //拷贝初始化
string str6("I am d"); //直接初始化
string str7 = string(6, 'c'); //拷贝初始化,cccccc
string的操作:
string str8=str3+str4; //将s3与s4拼接,储存在s8内
string str9="the str9: ";
str9+=str6; //直接拼接
cout << str9.size() << endl; //输出s9的长度
cout << str9[5] << endl; //输出s9的第5个字符
string str10;
getline(cin,str10); //读取一整行字符串至s10(即按下回车键才终止输入)
cout << str10 << endl; //输出刚才输入的字符串
string str11=str7.substr(0,3); //截取str7从0到3之间的字符串
cout << str11 << endl;
str11.insert(1,"bbb"); //将"bbb"插入到s11的第1个位置中
str11.erase(1,3); //删除s11的第1个位置之后的3个字符
cout << str11 << endl;
str11="123456789"; //对s11进行重新赋值
s11tr.replace(3-1,3,"kkk"); //替换s11的第3-1个位置之后的3个字符串为"kkk"
cout << str11;
显而易见,C++的string类比C的字符串定义好非常多。
最后补上一句:STL大法好!!!