c++ 引用std::string
时间: 2025-02-21 10:26:37 浏览: 28
### 如何在 C++ 中使用 `std::string`
`std::string` 是 C++ 标准库中的一个类模板实例,用于处理字符序列。它提供了丰富的接口来操作字符串数据。
#### 创建和初始化
可以直接通过赋值的方式创建并初始化 `std::string` 对象:
```cpp
#include <string>
using namespace std;
// 使用常量字符串初始化
string s1 = "hello world";
// 或者更显式的写法
string s2("hello cpp");
```
也可以基于已有对象进行复制构造:
```cpp
string s3(s1); // 复制s1的内容给s3
```
对于空字符串,则可以这样定义:
```cpp
string empty;
```
#### 基本操作方法
访问单个字符可以通过下标运算符实现:
```cpp
cout << s1[0]; // 输出 'h'
```
获取长度或大小的方法如下所示:
```cpp
size_t length = s1.length(); // 获取字符串的实际长度
size_t size = s1.size(); // 同length()
bool isEmpty = s1.empty(); // 判断是否为空串
```
连接两个字符串非常简单直观:
```cpp
string combined = s1 + ", " + s2;
combined += "!"; // 追加更多内容到现有字符串后面
```
查找子串的位置也很容易做到:
```cpp
size_t pos = s1.find("world"); // 查找首次出现位置
if(pos != string::npos){
cout << "Found at position:" << pos;
}
```
替换部分文本同样便捷高效:
```cpp
s1.replace(6, 5, "universe"); // 将索引6处起始的5个字符替换成新字串
```
#### 高效传递方式
当作为函数参数时,推荐采用 const 引用形式以减少不必要的拷贝成本:
```cpp
void process(const string& str);
```
如果编译器支持 C++17 及以上版本的话,还可以考虑利用 `std::string_view` 来进一步优化性能[^3]。
阅读全文
相关推荐


















