历史遗留问题
C 语言不支持真正意义上的字符串
C 语言用字符数组和一组函数实现字符串操作
C 语言不支持自定义类型,因此无法获得字符串类型
解决方案
从 C 到 C++ 的进化过程引入了自定义类型
在 C++ 中可以通过类完成字符串类型的定义
问题:
C++ 中的原生类型是否包含字符串类型?
标准库中的字符串类
C++ 语言直接支持 C 语言的所有概念
C++ 语言中没有原生的字符串类型
C++ 标准库提供了 string 类型
- string 直接支持字符串连接
- string 直接支持字符串的大小比较
- string 直接支持子串查找和提取
- string 直接支持字符串的插入和替换
字符串与数字的转换
标准库中提供了相关的类对字符串和数字进行转换
字符串流类 (sstream) 用于 string 的转换
- <sstream> - 相关头文件
- istringstream - 字符串输入流
- ostringstream - 字符串输出流
使用方法
字符串循环右移
示例:
abcdefg 循环右移 3 位得到 efgabcd
小结
应用开发中大多数的情况都在进行字符串处理
C++ 中没有直接支持原生的字符串类型
标准库通过 string 类支持字符串的概念
string 类支持字符串和数字的相互转换
string 类的应用使得问题的求解变得简单