c++string使用(c++ string用法总结)
## C++ string 使用
简介
C++ 的 `
空字符串:
```c++ std::string str1; // 创建一个空的字符串对象 ```
初始化为字面量:
```c++ std::string str2 = "Hello, world!"; // 使用字符串字面量初始化 ```
初始化为字符数组:
```c++ char charArray[] = "Hello, C++"; std::string str3(charArray); // 使用字符数组初始化 ```
初始化为另一个字符串对象:
```c++ std::string str4 = str2; // 使用拷贝构造函数复制另一个字符串 ```
指定长度和字符初始化:
```c++ std::string str5(10, '
'); // 创建一个包含 10 个 '
' 字符的字符串 ```### 3. 访问字符串内容
`[]` 运算符:
可以通过 `[]` 运算符访问单个字符,索引从 0 开始。```c++ std::string str = "example"; char c = str[0]; // c 将是 'e' str[0] = 'E'; // 将第一个字符改为 'E' ```
`at()` 方法:
`at()` 方法与 `[]` 运算符类似,但它会进行边界检查,如果索引越界则抛出 `std::out_of_range` 异常。```c++ char c = str.at(0); ```
`data()` 方法:
获取指向字符串内部字符数组的指针。 注意:这个指针指向的数据的生命周期与字符串对象绑定。```c++ const char
ptr = str.data(); ```
`c_str()` 方法:
获取以 null 结尾的 C 风格字符数组的指针。 常用在需要与 C 接口交互的场合。```c++ const char
cstr = str.c_str(); ```### 4. 字符串操作
`append()` 方法:
追加字符串到现有字符串的末尾。```c++ std::string str = "Hello"; str.append(", world!"); // str 现在是 "Hello, world!" str += ", again!"; // 等价于 append(),使用 += 运算符 ```
`insert()` 方法:
在指定位置插入字符串。```c++ str.insert(5, ", there"); // str 现在是 "Hello, there, world!, again!" ```
`erase()` 方法:
删除字符串的部分内容。```c++ str.erase(5, 6); // 从索引 5 开始删除 6 个字符 ```
`replace()` 方法:
用另一个字符串替换字符串的部分内容。```c++ str.replace(5, 0, "beautiful "); //在索引5处插入"beautiful " ```
`substr()` 方法:
获取字符串的子串。```c++ std::string sub = str.substr(5, 7); // 获取从索引 5 开始,长度为 7 的子串 ```
`find()` 方法:
查找子串在字符串中的位置。```c++ size_t pos = str.find("world"); // pos 将是子串 "world" 的起始索引 ```
`rfind()` 方法:
从字符串的末尾开始查找子串。
`length()` 或 `size()` 方法:
获取字符串的长度。```c++ size_t len = str.length(); ```
`empty()` 方法:
检查字符串是否为空。```c++ bool isEmpty = str.empty(); ```### 5. 字符串比较
`==`、`!=`、`<`、`>`、`<=`、`>=` 运算符:
可以直接使用这些运算符进行字符串比较。```c++ std::string str1 = "abc"; std::string str2 = "abc"; if (str1 == str2) { /
...
/ } ```
`compare()` 方法:
提供更精细的比较控制,可以比较部分字符串。### 6. 迭代器`std::string` 支持迭代器,可以像使用容器一样遍历字符串中的字符。```c++ for (char c : str) {// 处理每个字符 } ```### 7. 其他常用方法`std::string` 还提供了许多其他有用的方法,例如 `resize()`、`clear()`、`swap()` 等,请参考 C++ 标准库文档了解更多信息。
总结
`std::string` 是 C++ 中处理字符串的首选工具,它提供了安全、高效和便捷的字符串操作功能。 熟练掌握 `std::string` 的使用方法,可以极大地提高 C++ 程序的开发效率。 记住查阅 C++ 标准库文档,以获取关于所有可用方法和功能的完整信息。
C++ string 使用**简介**C++ 的 `
1. 包含头文件在使用 `std::string` 之前,需要在你的 C++ 代码中包含 `
include
2. 创建字符串对象创建 `std::string` 对象有多种方式:* **空字符串:**```c++ std::string str1; // 创建一个空的字符串对象 ```* **初始化为字面量:**```c++ std::string str2 = "Hello, world!"; // 使用字符串字面量初始化 ```* **初始化为字符数组:**```c++ char charArray[] = "Hello, C++"; std::string str3(charArray); // 使用字符数组初始化 ```* **初始化为另一个字符串对象:**```c++ std::string str4 = str2; // 使用拷贝构造函数复制另一个字符串 ```* **指定长度和字符初始化:**```c++ std::string str5(10, '*'); // 创建一个包含 10 个 '*' 字符的字符串 ```
3. 访问字符串内容* **`[]` 运算符:** 可以通过 `[]` 运算符访问单个字符,索引从 0 开始。```c++ std::string str = "example"; char c = str[0]; // c 将是 'e' str[0] = 'E'; // 将第一个字符改为 'E' ```* **`at()` 方法:** `at()` 方法与 `[]` 运算符类似,但它会进行边界检查,如果索引越界则抛出 `std::out_of_range` 异常。```c++ char c = str.at(0); ```* **`data()` 方法:** 获取指向字符串内部字符数组的指针。 注意:这个指针指向的数据的生命周期与字符串对象绑定。```c++ const char* ptr = str.data(); ```* **`c_str()` 方法:** 获取以 null 结尾的 C 风格字符数组的指针。 常用在需要与 C 接口交互的场合。```c++ const char* cstr = str.c_str(); ```
4. 字符串操作* **`append()` 方法:** 追加字符串到现有字符串的末尾。```c++ std::string str = "Hello"; str.append(", world!"); // str 现在是 "Hello, world!" str += ", again!"; // 等价于 append(),使用 += 运算符 ```* **`insert()` 方法:** 在指定位置插入字符串。```c++ str.insert(5, ", there"); // str 现在是 "Hello, there, world!, again!" ```* **`erase()` 方法:** 删除字符串的部分内容。```c++ str.erase(5, 6); // 从索引 5 开始删除 6 个字符 ```* **`replace()` 方法:** 用另一个字符串替换字符串的部分内容。```c++ str.replace(5, 0, "beautiful "); //在索引5处插入"beautiful " ```* **`substr()` 方法:** 获取字符串的子串。```c++ std::string sub = str.substr(5, 7); // 获取从索引 5 开始,长度为 7 的子串 ```* **`find()` 方法:** 查找子串在字符串中的位置。```c++ size_t pos = str.find("world"); // pos 将是子串 "world" 的起始索引 ```* **`rfind()` 方法:** 从字符串的末尾开始查找子串。* **`length()` 或 `size()` 方法:** 获取字符串的长度。```c++ size_t len = str.length(); ```* **`empty()` 方法:** 检查字符串是否为空。```c++ bool isEmpty = str.empty(); ```
5. 字符串比较* **`==`、`!=`、`<`、`>`、`<=`、`>=` 运算符:** 可以直接使用这些运算符进行字符串比较。```c++ std::string str1 = "abc"; std::string str2 = "abc"; if (str1 == str2) { /* ... */ } ```* **`compare()` 方法:** 提供更精细的比较控制,可以比较部分字符串。
6. 迭代器`std::string` 支持迭代器,可以像使用容器一样遍历字符串中的字符。```c++ for (char c : str) {// 处理每个字符 } ```
7. 其他常用方法`std::string` 还提供了许多其他有用的方法,例如 `resize()`、`clear()`、`swap()` 等,请参考 C++ 标准库文档了解更多信息。**总结**`std::string` 是 C++ 中处理字符串的首选工具,它提供了安全、高效和便捷的字符串操作功能。 熟练掌握 `std::string` 的使用方法,可以极大地提高 C++ 程序的开发效率。 记住查阅 C++ 标准库文档,以获取关于所有可用方法和功能的完整信息。