string常用库函数

string常用库函数


string的库函数非常多,若全部掌握是非常耗时间的,但是我们只需要掌握常用,重要的库函数即可,不常用的只需了解下即可,需要时,上C++标准官方库查找。

这里列举出本篇说明的函数insert、erase、swap、c_str、find、rfind、substr、getline


一:insert

功能:在pos的位置,插入字符串/字符

返回值:

  • 当我们只传递值时;该函数返回指向被插入到集合容器中的元素的迭代器。

  • 当我们传递带有值的位置时;该函数再次返回指向被插入到集合容器中的元素的迭代器。

  • 当我们通过 position_1 和 position_2 时;该函数返回从 position_1 开始到 position_2 结束的范围之间的一组值

示例:

1     insert(size_t pos, string& str);
2     //在pos位置插入字符串str
3     insert(size_t pos, size_t n, char c);
4     //在pos位置插入n个字符c
1     string s1("Hello World");
2     cout <<"插入前:"<< s1 << endl;
3     s1.insert(0, "xxx");//在下标为0的位置 插入字符串xxx
4     cout <<"插入后(字符串):"<< s1 << endl;
5     s1.insert(0, 5, 'w');//在下标为0的位置 插入5个字符w
6     cout << "插入后(字符):" << s1 << endl;

string常用库函数

insert也支持迭代器

1     s1.insert(s1.begin(), 2, 'o');//在begin的位置(开头)插入2个字符o
2     cout << "插入后(字符):" << s1 << endl;
3     s1.insert(s1.begin() + 3, 2, 'x');//在begin+3的位置(0+3)插入2个字符x
4     cout << "插入后(字符):" << s1 << endl;

string常用库函数

insert的效率不高,因为插入必然要挪到数据


二:erase

功能:删除字符

1     s1.erase();//不给参数默认全删
 2     cout << "删除后:" << s1 << endl;
3     s1.erase(s1.begin());//删除第一个字符(默认从0开始)
 4     cout << "删除后:" << s1 << endl;
5     s1.erase(s1.begin() + 3);//删除第3个字符(默认从0开始)
 6     cout << "删除后:" << s1 << endl;
7     s1.erase(3, 2);//从第三个字符开始,删除两个字符(删除第三个,第四个)
 8     cout << "删除后:" << s1 << endl;
9     s1.erase(3);//从第三字符开始全删(包括第三个)
10     cout << "删除后:" << s1 << endl;

string常用库函数


三:swap

功能:交换

swap在std库里有一个,string里也有一个

区别:

  • string库里的 效率高,交换指针
  • std库里的 效率低 浅拷贝交换

string常用库函数


四:c_str

功能 以c语言char类型打印

返回一个指向正规C字符串的指针, 内容与本string串相同

string常用库函数


五:find/rfind

功能 查找字符串/字符 返回它的下标(若没找到返回npos 类型最大值 或者 -1)

cout<<s2.find('H')<<endl;//从s2找字符H 返回它的下标
cout << s2.rfind('o') << endl; //反方向从s2找字符H 返回它的下标
cout << s2.find("ell");//从s2找字符串ell 返回第一个字符的下标
1 cout << s2.rfind("ll") << endl;//反方向从s2找字符串ll 返回它第一个字符的下标

六:substr

功能:取字符

s1.substr(pos,n);//从pos的位置开始(包括pos),取n个字符 (若没给n的参数,默认取完)

1 cout << s2.substr(1, 2) << endl;//从下标为1的位置开始 取2个字符

string常用库函数

1 cout << s2.substr(1) << endl;//从下标为1的位置开始 全部取完

string常用库函数


七:getline

功能:读取数据

与cin相同 同样是读取数据

区别:

  • cin是流 而getline是函数
  • cin的结束标志是空格 而getline的结束标志是换行

getline(cin,name)

1     string s3("");
2     getline(cin, s3);
3     cout << s3 << endl;

string常用库函数


这就是本篇的全部内容,如果对您有帮助,希望能获得您的点赞,您的点赞就是对我的最大支持与动力!

原文链接: https://www.cnblogs.com/LonelyMoNan/p/stringku.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/6020

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月4日 下午8:02
下一篇 2023年2月4日 下午8:03

相关推荐