您的位置:首页 > 编程语言 > C语言/C++

C++ string 类的一些简单用法总结

2017-04-18 19:16 344 查看
关于C++标准程序库中String类的初始化,有以下几种方法:

1.用原有String对象初始化

2.用一个字符串常量进行初始化

string str1="123";
string str2(str1);

3.用一个字符数组指针初始化

char char_array[5]={'1','2','3','4'};
string str(char_array);

4.用原有字符串搭配substr操作

string str1="123456";
string str2(str1,0,3);

5.利用迭代器

string str1="123456";
string str2(str1.begin(),str1.end());

6.还有一种不知道有啥意义,构造函数第一个参数为字符拷贝数量,第二个参数为拷贝的字符

string str(9,'1');

关于substr函数:

substr函数第一个参数是开始位置,截取字符数目为第二个参数,两个参数都有默认值,无参的substr函数代表全部截取。当substr第一个参数越界时,会报out_of_range错误,第二个参数过大导致越界则不会报错,截取到最后一个字符

string str="123456";
cout<<str.substr(0,3)<<endl;//输出“123”
cout<<str.substr(0,9)<<endl;//输出“123456”
cout<<str.substr(9,9)<<endl;//报错

有用的两个函数:append()与size():

  C++标准库为string类提供了一系列类似于容器的操作,其中str.append("append_string")代表向已有字符串后面添加字符,而size()与length()作用相同,即返回字符串长度。

两个不同的函数:insert()与replace():

  insert函数使得可以向字符串任意位置添加字符,但是有可能会造成原有字符串的储存位置发生改变,而replace()则可以替换给定位置的字符,它可以结合find()使用,注意,不要把string的成员函数replace与泛型算法中的replace混淆。

在《C++编程剖析》中提到了at()与[ ]的区别:at会进行数组越界检查,如果越界则会返回out_of_range错误,而索引操作符则不会进行检查,一般建议使用at()来进行索引操作。这也适用于string类。

刚刚尝试写博文作为总结笔记,如有问题或说法不妥,恳请指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: