C++ 标准库类型 string


一、string 类型的使用和定义


1、使用 string 类型

标准库类型 string 表示可变长的字符序列

#include <string>
using std::string;

2、定义和初始化 string 对象

直接初始化:使用括号
拷贝初始化:使用等号

// 直接初始化
string s1;          // 默认初始化,空串
string s2(s1)       // s2是s1的副本
string s3("value")
string s4(n, 'c')   // 重复 n 个 c// 拷贝初始化
string s2 = s1
string s3 = "value"

二、string 对象的操作


1、string::size_type 类型

string 类型的 size() 和下标的数据类型是size_type,是一种无符号整型数。不可与有符号类型混用

// 推导变量另外类型
string line("xxx");// 法一
auto len = line.size();// 法二
decltype(line.size()) len = line.size();

2、读写 string 对象

读取: string 对象会自动忽略开头的空白(空格符、换行符、制表符)从第一个非空字符读取直到遇见下一处空白为止。
输出: 与标准的输出一样

// 循环读取
string word;
while(cin >> word)cout << word << endl;//循环读取一行
string line;
while(getline(cin, line))cout << line << endl;

3、string 对象比较与相加

string 对象比较:

  • 从第一个字符开始比较
  • 遇到字符不同的按字典顺序进行比较,得到结果
  • 如果字符相同,比较长短

string 对象相加:

  • 两个 string 对象相加即为拼接
  • 可以一个 string 对象加一个字符串,返回的还是 string 对象
  • 不能两个字符串相加,除非前面已经有 string 对象

4、处理 string 对象中的字符

for 语句访问 string 对象中的字符:

// declaration 变量是 expression 基础元素
for(declaration: expression)statement// 循环打印字符
string str("xxx")
for(auto c : str)cout << c << endl;// 使用引用改变 string对象的字符
string str("xxx")
for(auto &c : str)c = toupper(c);
  • declaration: 定义一个变量
  • expression: string 对象
  • statement: 对变量的操作

下标访问:

下标从 0 开始,小于 size()

// 将第一个单词改为大写形式
string s("xxxx")
for (decltype(s.size()) index = 0; index != s.size() && !isspace(s[index]); ++index)s[index] = toupper(s[index]);

5、截取 string 的子串

// 截取s中从pos开始(包括0)的n个字符的子串,并返回
s.substr(pos, n)    // 截取s中从pos开始(包括0)到末尾的所有字符的子串,并返回
s.substr(pos)

6、替换 string 的子串

// 用s1替换s中从pos开始(包括0)的n个字符的子串s.replace(pos, n, s1)

7、查找 string 的子串

//  查找s中第一次出现s1的位置,并返回(包括0)s.find(s1)        // 查找s中最后次出现s1的位置,并返回(包括0)
s.rfind(s1)        // 查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)
s.find_first_of(s1)       // 查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)
s.find_last_of(s1)      //  查找s中第一个不属于s1中的字符的位置,并返回(包括0)
s.fin_first_not_of(s1)        // 查找s中最后一个不属于s1中的字符的位置,并返回(包括0)
s.fin_last_not_of(s1)         

C++ 标准库类型 string相关推荐

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

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

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

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

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

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

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

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

  5. c++ 标准库类型string

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

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

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

  7. (复健计划)标准库类型string

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

  8. C++ 标准库类型 string

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

  9. 标准库类型String,Vector

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

最新文章

  1. SpringCloud配置中心-Config
  2. 少儿编程语言python-Python少儿编程系列-前言-为什么学Python?
  3. Python正在勒死R吗?
  4. Shutdown SpringBoot App
  5. 并发模式:生产者和消费者
  6. android 调用系统自带文件管理器_编写使用Android 系统自带的文字转语音代码
  7. 【VS开发】【miscellaneous】 Windows下配置Git
  8. Vim 还是 Emacs
  9. 视频下载工具annie 安装与使用
  10. 笔记——衡量回归算法的标准最好的评价指标R Square
  11. Orcad Schematic常用功能
  12. python 涨停统计_Python采集选股宝涨停信息
  13. Python实现定时在微信群发送消息
  14. 我的世界服务器修改spawn,编辑“命令/spawnpoint” - Minecraft Wiki,最详细的官方我的世界百科...
  15. 【报告分享】2020年短视频及电商直播趋势报告-飞瓜数据(附下载)
  16. 中文乱码与字体库windows
  17. wfp例子inspect说明
  18. nginx ip黑名单动态封禁
  19. 关于javascript的unescape()函数
  20. fmp4打包H264详解

热门文章

  1. Leetcode No.145 **
  2. JVM调优总结(五)-调优方法(转载)
  3. 1.1.3 以Self Host方式寄宿Web API
  4. python相关软件安装
  5. 设备管理学习之概念篇
  6. HBuilderX 连接电脑的模拟器问题
  7. 剖析Hadoop和Spark的Shuffle过程差异(一)
  8. asp.net mvc cookie超时返回登录页面问题
  9. ubuntu12.04安装KDevelop
  10. C#如何将按钮置于按下状态