STL string类详解:构造、字符操作与输入输出
需积分: 38 151 浏览量
更新于2024-09-13
收藏 20KB DOCX 举报
本文档详细介绍了C++标准模板库(STL)中的`std::string`类,这是C++中最常用的字符串类型之一。它提供了丰富的功能,包括各种构造函数、字符操作、特性获取、输入输出以及赋值操作。
**1. 构造函数**
- `string(const char* s);`:此构造函数接受一个C风格字符串`s`作为参数,将它转换为`std::string`对象。
- `string(int n, char c);`:通过指定的整数`n`和字符`c`创建一个包含`n`个重复字符`c`的字符串。
- 除了上述显式构造函数,`std::string`还具备默认构造函数和复制构造函数,例如`string s1;`(默认构造)和`string s2 = "hello";`(复制构造),允许用户方便地初始化字符串。
**2. 字符操作**
- `const char& operator[](int n) const;` 和 `char& operator[](int n);`:这两个成员函数返回指定索引位置的字符。`const`版本是常量引用,用于只读访问,`&`版本是可修改引用,允许直接修改字符。`at(int n)` 是一个安全版本,提供了范围检查,当索引越界时会抛出`std::out_of_range`异常。
- `const char* data() const;`:返回一个指向字符串内部存储的非NULL终止的字符数组。
- `const char* c_str() const;`:返回一个以NULL终止的C风格字符串,便于与C API交互。
**3. 特性描述**
- `int capacity() const;`:返回当前字符串的容量,即可以容纳的元素数量,而不必增加内存。
- `int max_size() const;`:表示`std::string`对象能够容纳的最大字符串长度,受系统内存限制。
- `int size() const;`:返回字符串的实际长度,不包括结束符。
- `int length() const;`:同`size()`,用于兼容性。
- `bool empty() const;`:判断字符串是否为空。
**4. 输入输出操作**
- `std::string operator>>(istream& in, string& s);` 和 `std::string operator<<(ostream& out, const string& s);`:这两个重载运算符分别用于从输入流中读取字符串和向输出流写入字符串。
**5. 赋值操作**
- `string& operator=(const string& s);`:将一个字符串`s`的内容复制到当前字符串。
- `string& assign(const char* s);`:将C风格字符串`s`的内容插入到当前字符串中。
总结来说,`std::string`类提供了强大的字符串处理能力,使得在C++编程中操作字符串变得简单且高效。理解这些函数和操作有助于程序员编写出健壮和高效的代码。
2011-09-04 上传
2016-05-23 上传
点击了解资源详情
107 浏览量
2008-10-11 上传
2010-04-18 上传
2021-10-01 上传
2021-06-06 上传
点击了解资源详情
youxiaqishi2012
- 粉丝: 0
- 资源: 5
最新资源
- Python-DataStructure-GFG-实践
- Starling-Extension-Particle-System:Starling框架的粒子系统,与71squared.com的“粒子设计器”兼容
- 30dayJSPractice:我将按照Wes BosJavaScript 30课程来练习Vanilla JS。 此知识库中有一些个人笔记的解决方案,可帮助我在JS上更强壮
- audiobook-player-alexa
- 新翔ASP培训学校教学管理系统
- Excel模板考场桌面标签.zip
- datepicker:显示日历,然后为彩票选择随机日期
- EPANET:供水系统液压和水质分析工具包
- MAX31855温度检测_MAX31855
- SimpleMachineLearningExp:我与机器学习的第一次互动!
- A-Recipe:Soorji ka Halwa的食谱。 享受!
- 无限跑者游戏
- DesignPattern:设计模式小Demo
- BMITaven.rar
- manga4all-ui:manga4all-ui
- InjectableGenericCameraSystem:这是一个通用的相机系统,可用作相机在游戏内拍摄屏幕截图的基础。 该系统的主要目的是通过用我们自己的值覆盖其摄像机结构中的值来劫持游戏中的3D摄像机,以便我们可以控制摄像机的位置,俯仰角值,FoV和摄像机的外观向量