string库函数c++
时间: 2025-02-21 16:24:25 浏览: 49
### C++ 中 `std::string` 库函数的使用
在现代 C++ 编程中,字符串操作是一个非常常见的需求。C++ 提供了一个强大的类模板 `std::basic_string` 来处理字符序列,其中最常用的是特化版本 `std::string` 和 `std::wstring`。
#### 创建和初始化字符串对象
可以使用多种方式创建并初始化 `std::string` 对象:
```cpp
#include <iostream>
#include <string>
int main() {
std::string s1; // 默认构造函数
std::string s2("hello"); // 使用常量表达式初始化
std::string s3(5, 'a'); // 构造由五个'a'组成的字符串
}
```
#### 基本成员函数
下面列举了一些常用的成员函数及其功能说明[^1]:
- **访问元素**
- `size()` 或者 `length()` 返回当前存储的有效字符数。
- `capacity()` 获取分配给此字符串的空间大小(可能大于实际长度)。
- `empty()` 判断是否为空串。
- `operator[]`, `at()` 访问指定位置上的单个字符;区别在于后者会做边界检查抛异常而前者不会。
- **修改内容**
- `append(const char* str)` 追加另一段文本到现有字符串后面;
- `insert(size_t pos, const string& str)` 插入子串至特定偏移处;
- `erase(size_t pos = 0, size_t n = npos)` 删除部分数据;
- `clear()` 清除全部内容使它变成空串;
- `replace(...)` 替换某范围内的旧值为新值。
- **查找与比较**
- `find(sub_str [, start_pos])` 寻找首次出现的位置,默认从头开始搜索直到结束为止;
- `rfind(sub_str[, end_pos])` 反向寻找最后一次匹配的地方;
- `compare(other_str)` 字典序对比两个字符串之间的关系返回负整数表示小于零则意味着前者较小反之亦然等于则是相等。
#### 实际应用案例
这里给出一段简单的例子来展示如何利用这些方法完成基本的任务:
```cpp
#include <iostream>
#include <string>
void printInfo(const std::string &str) {
std::cout << "Original String: \"" << str << "\"\n";
std::cout << "Size: " << str.size() << "\nCapacity: "
<< str.capacity() << '\n';
}
int main() {
std::string greeting = "Hello world!";
// 输出原始信息
printInfo(greeting);
// 修改部分内容
greeting.replace(6, 5, "there");
printInfo(greeting);
}
```
这段程序首先定义了一条问候语句,并通过自定义辅助函数打印其基本信息。接着调用了替换接口更改了原有的一部分文字再重新显示更新后的状态。
阅读全文
相关推荐


















