c++的string用法
时间: 2024-12-09 22:11:55 浏览: 11
在C++中,`std::string` 是一个用于处理字符串的类,定义在头文件 `<string>` 中。它提供了许多方便的方法来操作字符串,使得字符串处理变得更加简单和直观。以下是一些常用的 `std::string` 用法:
1. **创建和初始化字符串**:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str1; // 空字符串
std::string str2 = "Hello, World!"; // 初始化为 C 风格字符串
std::string str3(str2); // 使用另一个字符串初始化
std::string str4(5, 'A'); // 初始化为 5 个 'A'
std::cout << str1 << std::endl;
std::cout << str2 << std::endl;
std::cout << str3 << std::endl;
std::cout << str4 << std::endl;
return 0;
}
```
2. **字符串拼接**:
```cpp
std::string str1 = "Hello";
std::string str2 = "World";
std::string str3 = str1 + " " + str2; // 拼接字符串
std::cout << str3 << std::endl; // 输出 "Hello World"
```
3. **访问字符串中的字符**:
```cpp
std::string str = "Hello";
char c = str[1]; // 获取第二个字符 'e'
std::cout << c << std::endl;
```
4. **字符串长度**:
```cpp
std::string str = "Hello";
size_t length = str.length(); // 获取字符串长度
std::cout << length << std::endl; // 输出 5
```
5. **字符串比较**:
```cpp
std::string str1 = "Hello";
std::string str2 = "World";
if (str1 == str2) {
std::cout << "Strings are equal" << std::endl;
} else {
std::cout << "Strings are not equal" << std::endl;
}
```
6. **子字符串**:
```cpp
std::string str = "Hello, World!";
std::string sub = str.substr(7, 5); // 获取从索引 7 开始的 5 个字符
std::cout << sub << std::endl; // 输出 "World"
```
7. **查找子字符串**:
```cpp
std::string str = "Hello, World!";
size_t pos = str.find("World"); // 查找子字符串 "World"
if (pos != std::string::npos) {
std::cout << "Found at position: " << pos << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
```
8. **替换子字符串**:
```cpp
std::string str = "Hello, World!";
str.replace(7, 5, "C++"); // 替换从索引 7 开始的 5 个字符为 "C++"
std::cout << str << std::endl; // 输出 "Hello, C++!"
```
这些只是 `std::string` 的一些基本用法,它还提供了许多其他有用的方法,如 `insert`、`erase`、`c_str` 等,可以根据需要查阅 C++ 标准库文档进行深入学习。
阅读全文