标准库类型string表示可变长的字符序列,使用string类型必须包含sring头文件<string>。作为标准库的一部分,string定义在命名空间,string定义在命名空间std中 示范如下:

#include<string>
using std::string

初始化法则如下:

string s5 = "hello";
string s6("hello");
string s7(10,'c');

基本操作:

读取字符串:有时我们希望在读取时保留输入时的空白符,此时可以用getline操作,每次读入一整行,直至文件末尾

while (getline(cin, line))

判断字符串大小与是否为空:

s.empty();   //返回bool类型,判断字符串是否为空
s.size();    //返回字符串的大小

SIZE_TYPE函数防混用操作:

string的size函数返回的是size_type类型,它是一个无符号整数,因为不可能存在string.size()<0的情况

所以切记不要把size()值传给int变量, 可以使用 auto num = line.size();

两个字符串拼接:加号是重载过的,相加就可以得到结果.

string s1 = "hello, ", s2 = "world\n"
string s3 = s1+s2;
s1 += s2;

字符串处理及案例:

我们经常要单独处理string对象中的字符,比如检查一个string对象是否包含空白,或者把string对象中的字母改成小写,或者检查某个特定字符串是否出现等

这时候则需要处理string中的每一个字符,我们可以通过一个循环来进行调用。

string s("Hello World");
for(auto &c:s){ //c代表每一个字符,对其进行处理  }

下标操作:

string的下标操作类似于数组,下标值也是size_type类型的。比如我们要通过下标将string中的字符都改成大写:

s[0] = toupper(s[0]);    //只把首位替换成0s[s.size() - 1] = toupper(s[s.size() - 1]);//只把后一位替换for (decltype(s.size()) index = 0; index != s.size() && !isspace(s[index]) ; ++index) {s[index] = toupper(s[index]);}

一些基本的操作函数:

replace函数:替换掉字符串中的一截或整个字符串:

​
string abc = "abcdefg";string cde = "cdefghi";string abcxx(begin(abc) + 2, begin(abc) + 5);cout << abcxx << endl;abc.replace(begin(abc) + 2, begin(abc) + 5, "XYZ");  //字符串替换cout << abc << endl;​

repalce函数参数:初始位置,结束位置,替换字符串

find函数:查找是否有对应的子字符串,如果有,则返回子字符串在母字符串中的开头位置,没有则返回最后位置

一个替换函数案例如下,函数输入参数为:母字符串,需要被替换的字符串,替换字符串

//一个替换函数
string& replaceTheStr(string& origin,const string &tofind,const string &toreplace) {auto pos = origin.find(tofind);if (pos != string::npos) {origin.replace(begin(origin) + pos, begin(origin) + pos + size(tofind), toreplace);return origin;}}

该函数首先查找是否有被替换的字符串,如果有,则找到其开头位置,通过开头位置-末尾位值算出替换范围,最后进行替换

(复健计划)标准库类型string相关推荐

  1. C++ 标准库类型 string

    C++ 标准库类型 string 一.string 类型的使用和定义 1.使用 string 类型 标准库类型 string 表示可变长的字符序列 #include <string> us ...

  2. 标准库类型string的基本功能和使用

    标准库类型string的基本功能和使用 String基本知识 初始化 基本操作 范围for语句 string定义的迭代器及其他 关于下标操作 示例代码 练习3.6 cctype.cpp punctRe ...

  3. 谈谈两种标准库类型---string和vector

    两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库 ...

  4. C++primer 第 3 章 字符串、向量和数组 3.1 命名空间的using声明 3.2标准库类型string

    引言 除了第2章介绍的内置类型之外,C++语言还定义了 -个内容丰富的抽象数据类型库.其中,string和 vector是两种最重耍的标准库类型,前者支持可变长字符串,后者则 表示可变长的集合.还有- ...

  5. C++ primer三章二节标准库类型string

    标准库类型string 标准库类型string表示可变长的字符序列,使用#include<string>引入头文件,string定义在命名空间std中. 定义和初始化string对象 如何 ...

  6. c++ 标准库类型string

    标准库类型string string表示可变长的字符序列,使用string类型必须首先包含string头文件. 文章目录 一.定义和初始化string对象 二.操作string对象 三.处理strin ...

  7. 【C++学习笔记】标准库类型string

      标准库类型string表示可变长的字符序列,使用string类型必须先包含string头文件,string定义在命名空间std. #include <string> using std ...

  8. C++ 标准库类型 string

    写在前面: 我是「虐猫人薛定谔i」,一个不满足于现状,有梦想,有追求的00后 \quad 本博客主要记录和分享自己毕生所学的知识,欢迎关注,第一时间获取更新. \quad 不忘初心,方得始终.自己的梦 ...

  9. 标准库类型String,Vector

    string对象中每个字符的处理: 要用到 for(声明:表达式) 语句 比如简单的打印string str中每一个字符 --- string str("hello world!!!&quo ...

最新文章

  1. CV01-语义分割笔记和两个模型VGG ResNet的笔记
  2. jQuery是否可以获取与元素关联的所有CSS样式?
  3. tensorflow+numpy 深度学习相关函数(持续更新)
  4. python的learn_python_learn1
  5. vim xxd命令查看二进制文件内容
  6. 解决ZF2_PATH environment
  7. SpringCloud学习笔记027---SpringBoot集成MyBatis_实现多数据源_可以自定义数据库类型
  8. 181023词霸有道扇贝每日一句
  9. sublime text3找到定义_决策易aPaaS,一款非技术人员也能使用的自定义开发神器
  10. Android 文件md5校验
  11. AutoCAD2010图边框图.LSP与.DGW文件该放在哪才能正确生成想要的图框
  12. 必读论文|20篇聊天机器人领域必读论文速递
  13. 搭建 Harbor v2.2.0 docker私库
  14. 基于微信小程序的扫码签到系统源码
  15. 批量将一个 PDF 文件按固定页数拆分成多个小的 PDF 文件
  16. CSS 中的@media
  17. html登陆没反应,ipad屏幕输入密码没反应
  18. Codeforces Round #469 (Div. 2) C. Zebras
  19. python人工智能大全_(自兴人工智能)Python 列表(List)的灵活使用
  20. 如何正确理解「指标」和「标签」

热门文章

  1. 重温CSS3常见新特性的奥秘(个人总结)
  2. jvm探秘五:Class类文件结构之属性表
  3. 计算机硬件结构简略介绍
  4. word自带公式编辑_关于Word内置公式编辑器不能使用的解决方法,请收藏
  5. 《出版专业实务》(2015年版初级)思考与练习答案 第二章
  6. 找出一个二维数组中的鞍点,即该位置上的的元素,在该行上最大,该列上最小,也可能没有鞍点
  7. ie浏览器下载文件中文名称乱码
  8. python计算上市公司股票30天的股票收益率
  9. 【有奖转发】#大学生IT博客大赛#热情开幕!(人人活动)
  10. proxy for network平台差异