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模板类也需要两个模板参数, ...
随机推荐
- git 忽略规则
# 以'#'开始的行,被视为注释. # 忽略掉所有文件名是 foo.txt的文件. foo.txt # 忽略所有生成的 html文件, *.html # foo.html是手工维护的,所以例外. !f ...
- MIAME|Highwire press
生物信息学 GEO可存储基因芯片数据,支持MIAME.MIAME是minimum information about a microarry experiment.这之中存储研究原始数据+标准化之后的 ...
- take office|boast|think twice|dispose of|level|stuff|'s mature for|a green hand|'s a slave to|
One reporter wrote that Dewey was acting like a man who had already been elected and was only passin ...
- orcale 11g安装,创建表空间,用户,授权用户
一.卸载旧oracle 用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下: 1. 开始->设 ...
- Mybatis-Plus的分页插件
使用的是:Mybatis-Plus的分页插件https://baomidou.gitee.io/mybatis-plus-doc/#/?id=%E7%AE%80%E4%BB%8B 1.Mapper.j ...
- Spring Boot 集成 Spring Security
1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- 《自动化平台测试开发-Python测试开发实战》新书出版了
首先 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书. <软件自动化测试开发>认真看过的读者应该都知道,介绍的主要是自 ...
- python __import__动态模块
1.只限解释器内部自己使用. 条件:test.lianx_2.py中的代码: class a(object): def __init__(self,name): self.name=name def ...
- 码海拾遗:strcpy()、strncpy()和strcpy_s()区别
1.strcpy() 原型:char *strcpy(char *dst,const char *src) 功能:将以src为首地址的字符串复制到以dst为首地址的字符串,包括'\0'结束符,返回ds ...
- e代驾狂野裁员 O2O逐渐恢复理智?
O2O逐渐恢复理智?" title="e代驾狂野裁员 O2O逐渐恢复理智?"> 近段时间以来,O2O行业堪称"哀鸿遍野",十分凄惨.巨头 ...