C++ 标准模板库(STL)-string
总结了一些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 ;
}
C++ 标准模板库(STL)-string的更多相关文章
- 标准模板库(STL)学习探究之stack
标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string
- C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第二篇.主要针对线性表中的链表 ST ...
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- C++ 标准模板库(STL)
C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...
- STL学习系列之一——标准模板库STL介绍
库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...
- 标准模板库--STL
标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...
- 实验8 标准模板库STL
一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http:// ...
- C++ 标准模板库STL 队列 queue 使用方法与应用介绍
C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数, ...
随机推荐
- yield解析
1.yield可以用来为一个函数返回值塞数据 代码: def addlist(alist): for i in alist: alist = [, , , ] for x in addlist(ali ...
- mysql idb文件过大
分开 保存,每个数据库有自己的 innodb_file_per_table=1
- deeplearning.ai 神经网络和深度学习 week4 深层神经网络
1. 计算深度神经网络的时候,尽量向量化数据,不要用for循环.唯一用for循环的地方是依次在每一层做计算. 2. 最常用的检查代码是否有错的方法是检查算法中矩阵的维度. 正向传播: 对于单个样本,第 ...
- struts2 标签s:select在table中单行显示
<table class="query_form_table"> <tr> <th>用户 ...
- 吴裕雄--天生自然HTML学习笔记:HTML - XHTML
XHTML 是以 XML 格式编写的 HTML. 什么是 XHTML? XHTML 指的是可扩展超文本标记语言 XHTML 与 HTML 4.01 几乎是相同的 XHTML 是更严格更纯净的 HTML ...
- Java正则表达式java.util.regex类的简单使用
1.什么是正则表达式? 正则表达式(regular expression)是根据字符串集合内每个字符串共享的共同特性来描述字符串集合的一种途径.正则表达式可以用于搜索.编辑或者处理文本和数据. Jav ...
- Spring History和spring设计哲学
1.spring history spring起点 2002年10月,Rod Johnson 写了一本名为Expert One-on-One J2EE设计和开发的书.本书由Wrox发布,涵盖了当时Ja ...
- Django学习之路03
django项目生命周期 路由层 路由匹配 #urls中的urlpatterns #url()方法 urlpatterns = [ url(r'^admin/', admin.site.urls), ...
- SpringMVC之reset风格和form表单格式的curd
CRUD c:create创建 r:retieve:查询 u:update:修改 d:delete:删除 rest /emp/1 get 代表查询id为1的员工 /emp/1 put 代表修改id为1 ...
- 状态模式(State)-设计模式
软件模式是将模式的一般概念应用于软件开发领域,即软件开发的 总体指导思路或参照样板.软件模式并非仅限于设计模式,还包括 架构模式.分析模式和过程模式等,实际上,在软件生存期的每一个阶段都存在着一些被认 ...