总结了一些c++ string库常用的库函数用法

#include <iostream>
#include <string>//string类可以自动管理内存
using namespace std; int main()
{
//声明
string test1="";
//cin >> test1;
//getline(cin, test1); //相同功能 //c初始化
string test2 = "hello";
string test3 = "world";
string test4("great");
string test41(test2);
string test42(test2.begin(), test2.end());
string test43(test2[], test2[]); //赋值
test2 = "good";
test2.assign("hello ");
test2.assign(test3,,);//将test3的从下标为1的字符开始(包括),大小为2的子串赋给test2
test2.assign(, 'A');//将5个A赋值给test2 //获取字符
cout << test1[]<<endl;
cout << test1[]<<endl;
cout << test1.at()<<endl; //交换
test2.swap(test3); //返回子串
cout << test3.substr() << endl;
cout << test3.substr(, ) << endl;//返回从下标为0的字符开始(包括),大小为2的子串 //追加字符
test3 += test2;
test3.append(test2);
test3.append(test2, , );//将test2的从下标为1的字符开始(包括),大小为3的子串追加给test3
test3.append(, 'A');//追加5个A
test3.push_back('A'); //插入
test3.insert(, "abc");
test3.insert(, test1);//将test1插入下标3
test3.insert(, test1, );//将test1的前两个字符插入
test3.insert(, test1, ,);//将test1的子串(从0开始,长度为2)插入
test3.insert(, , 'A');//插入5个A //清除字符
string test5("hello");
test5.clear();//清除所有字符
cout << test5 << endl;
test5 = "hello";
test5.erase();//清除所有字符
cout << test5 << endl;
test5 = "hello";
test5.erase(, );//删除从下标从1开始的3个字符
cout << test5 << endl;
test5.erase();//删除下标1后所有字符
cout << test5 << endl; //字符串大小
cout << test2.size() << endl;//字符个数
cout << test2.length() << endl;//与size()同
cout << test2.max_size() << endl;//string可包含的最多的字符数,与系统是32位还是64位有关
cout << test2.capacity() << endl;//在重新分配内存前,string对象的最大容量 //字符串比较
cout << test2.compare(test3) << endl;//相同返回0;test2字典顺序先于test3,返回-1;test2字典顺序后于test3,返回1
cout << test2.compare(, , test3, , ) << endl;//子串比较,表示test2的从0开始,大小为3的子串与 test3的从0开始,大小为3的子串比较
string test6 = "ABC";
string test7 = "DEF";
//字典顺序在前的更小,条件成立返回1,不成立返回0
cout << (test5 == test6) << endl;
cout << (test5 < test6) << endl;
cout << (test5 > test6) << endl;
cout << (test5 <= test6) << endl;
cout << (test5 >= test6) << endl; //字符串查找
string test8 = "abcabcaabbj";
cout<<test8.find("aa", )<<endl;//正向查找abc,从下标0开始,返回第一次出现的子串的首字母下标
cout << test8.rfind("ab") << endl;//逆向查找abc,从下标0开始,返回第一次出现的子串的首字母下标
cout << test8.find_first_of("ab") << endl;//查找首次出现子串的第一个字符
cout << test8.find_last_of("ab") << endl;//查找最后一次出现子串的最后一个字符
cout << test8.find_first_not_of("ab") << endl;//查找与子串不等的第一个字符
cout << test8.find_last_not_of("ab") << endl;//查找与子串不等的最后一个字符 return ;
}

最新文章

  1. java基础2.-------interface接口类,实现接口
  2. Linux 指令大全
  3. getParameterMap()的返回值为Map&lt;String, String[]&gt;,从其中取得请求参数转为Map&lt;String, String&gt;的方法如下:
  4. [问题2014A10] 解答
  5. 谷歌正式发布Google APIs Client Library for .NET
  6. ctypes 模块
  7. ListVIew中插入view
  8. Flex中神奇的快速辅助 Ctrl+1
  9. CTS/GTS 常见问题解答
  10. fetch()函数使用的一些技巧
  11. 学习笔记-JS公开课一
  12. JS入门经典第四章总结
  13. 【pyqtgraph绘图】安装pyqtgraph
  14. OCX ClassId查看
  15. 【51nod1073】约瑟夫环1
  16. 精美的HTML5/CSS3表单 带小图标
  17. 如何Request客户端的传值的Data
  18. Kotlin——初级篇(一):最详细的环境搭建
  19. Oracle中的一连接语句
  20. 分享上传图片shell的绕过过滤的几种方法

热门文章

  1. Java IO: FileReader和FileWriter
  2. ISBN|方正|超星|The national academies press|OECD|RSC|Springer Link|Knovel|Encyclopedia Britannica
  3. ZOJ-4089-Little Sub and Isomorphism Sequences
  4. algorithm-question
  5. 通过银行卡的Bin号来获取银行名称
  6. c中结构体边界对齐
  7. win+E 出现“未指定错误“修复方案
  8. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建
  9. elasticsearch 产生未分配分片的原因(es官网)
  10. 如何成为一名高级C++程序员