C++ string类的使用

﹥>﹥吖頭↗ 提交于 2020-02-09 19:05:15

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大法好!!!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!