c++string库(cstring库函数)
## C++ string 库### 简介C++ string 类是 C++ 标准库提供的一个用于处理字符串的强大工具。与 C 风格字符串(以空字符结尾的字符数组)相比,`std::string` 提供了更安全、更灵活、更易用的字符串操作方式。它允许你执行各种字符串操作,例如:- 创建和初始化字符串
- 获取字符串长度
- 比较字符串
- 连接字符串
- 搜索和替换子字符串
- 转换大小写
- 从字符串中提取数字### 头文件要使用 `std::string`,需要包含 `
'); // "
" ```### 访问和修改字符你可以使用类似数组的方式访问字符串中的单个字符:```c++ std::string str = "Hello"; char ch = str[0]; // ch = 'H' str[0] = 'J'; // str = "Jello" ```你还可以使用 `at()` 方法访问字符,它提供了边界检查:```c++ char ch = str.at(1); // ch = 'e' // 尝试访问越界字符会抛出异常 try {char ch = str.at(10); } catch (const std::out_of_range& e) {std::cerr << "Out of Range error: " << e.what() << std::endl; } ```### 常用操作`std::string` 类提供了丰富的成员函数来操作字符串:
1. 获取字符串信息:
- `length()` 或 `size()`: 返回字符串长度 - `empty()`: 检查字符串是否为空 - `c_str()`: 返回指向以空字符结尾的字符数组的指针 - `data()`: 返回指向字符串数据的指针
2. 比较字符串:
- `operator==`, `operator!=`, `operator<`, `operator>`, `operator<=`, `operator>=`: 比较两个字符串 - `compare()`: 比较两个字符串,提供更详细的比较结果
3. 连接字符串:
- `operator+=`: 将字符串追加到当前字符串末尾 - `append()`: 将字符串或字符追加到当前字符串末尾 - `+`: 连接两个字符串
4. 搜索和替换:
- `find()`: 查找子字符串 - `rfind()`: 反向查找子字符串 - `substr()`: 提取子字符串 - `replace()`: 替换子字符串
5. 修改字符串:
- `insert()`: 插入字符或字符串 - `erase()`: 删除字符或子字符串 - `clear()`: 清空字符串 - `resize()`: 调整字符串大小
6. 大小写转换:
- `tolower()`: 将字符串转换为小写 - `toupper()`: 将字符串转换为大写
7. 数字转换:
- `stoi()`: 将字符串转换为整数
- `stol()`: 将字符串转换为长整型
- `stof()`: 将字符串转换为浮点数
- `stod()`: 将字符串转换为双精度浮点数### 示例```c++
#include
C++ string 库
简介C++ string 类是 C++ 标准库提供的一个用于处理字符串的强大工具。与 C 风格字符串(以空字符结尾的字符数组)相比,`std::string` 提供了更安全、更灵活、更易用的字符串操作方式。它允许你执行各种字符串操作,例如:- 创建和初始化字符串 - 获取字符串长度 - 比较字符串 - 连接字符串 - 搜索和替换子字符串 - 转换大小写 - 从字符串中提取数字
头文件要使用 `std::string`,需要包含 `
include
创建字符串对象你可以使用多种方式创建 `std::string` 对象:```c++ // 使用字符串字面量初始化 std::string str1 = "Hello";// 使用另一个字符串对象初始化 std::string str2(str1);// 使用部分字符串初始化 std::string str3(str1, 1, 3); // "ell"// 使用字符数组初始化 char data[] = "World"; std::string str4(data);// 使用重复字符初始化 std::string str5(5, '*'); // "*****" ```
访问和修改字符你可以使用类似数组的方式访问字符串中的单个字符:```c++ std::string str = "Hello"; char ch = str[0]; // ch = 'H' str[0] = 'J'; // str = "Jello" ```你还可以使用 `at()` 方法访问字符,它提供了边界检查:```c++ char ch = str.at(1); // ch = 'e' // 尝试访问越界字符会抛出异常 try {char ch = str.at(10); } catch (const std::out_of_range& e) {std::cerr << "Out of Range error: " << e.what() << std::endl; } ```
常用操作`std::string` 类提供了丰富的成员函数来操作字符串:**1. 获取字符串信息:**- `length()` 或 `size()`: 返回字符串长度 - `empty()`: 检查字符串是否为空 - `c_str()`: 返回指向以空字符结尾的字符数组的指针 - `data()`: 返回指向字符串数据的指针**2. 比较字符串:**- `operator==`, `operator!=`, `operator<`, `operator>`, `operator<=`, `operator>=`: 比较两个字符串 - `compare()`: 比较两个字符串,提供更详细的比较结果**3. 连接字符串:**- `operator+=`: 将字符串追加到当前字符串末尾 - `append()`: 将字符串或字符追加到当前字符串末尾 - `+`: 连接两个字符串**4. 搜索和替换:**- `find()`: 查找子字符串 - `rfind()`: 反向查找子字符串 - `substr()`: 提取子字符串 - `replace()`: 替换子字符串**5. 修改字符串:**- `insert()`: 插入字符或字符串 - `erase()`: 删除字符或子字符串 - `clear()`: 清空字符串 - `resize()`: 调整字符串大小**6. 大小写转换:**- `tolower()`: 将字符串转换为小写 - `toupper()`: 将字符串转换为大写**7. 数字转换:**- `stoi()`: 将字符串转换为整数 - `stol()`: 将字符串转换为长整型 - `stof()`: 将字符串转换为浮点数 - `stod()`: 将字符串转换为双精度浮点数
示例```c++
include
include
总结C++ string 类提供了一种强大而灵活的方式来处理字符串。 它的丰富的功能和易用性使其成为 C++ 程序员必不可少的工具。