引言
C++ 标准库犹如一座编程的宝库,其中的 string
类、vector
和 List
容器以及文件操作(fstream
)为开发者提供了强大而便捷的工具,能极大地提升编程效率。接下来,我们将全方位深入探索这些重要组件。
一、string 类
1. 概述
string
类位于 <string>
头文件中,它是 C++ 为处理字符串量身打造的利器。相较于传统的 C 风格字符串(以 '\0'
结尾的字符数组),string
类拥有自动内存管理功能,提供了丰富的成员函数,使用起来更加方便、安全。
2. 详细使用方法
2.1 定义与初始化
#include <iostream>
#include <string>
int main() {
// 默认构造函数,创建一个空字符串
std::string str1;
// 使用 C 风格字符串初始化
std::string str2("Hello, C++!");
// 使用另一个 string 对象初始化
std::string str3(str2);
// 使用重复字符初始化
std::string str4(5, 'X');
// 从指定位置开始截取初始化
std::string str5(str2, 7, 3);
std::cout << "str1: " << str1 << std::endl;
std::cout << "str2: " << str2 << std::endl;
std::cout << "str3: " << str3 << std::endl;
std::cout << "str4: " << str4 << std::endl;
std::cout << "str5: " << str5 << std::endl;
return 0;
}
2.2 字符串拼接
#include <iostream>
#include <string>
int main() {
std::string str1 = "Hello";
std::string str2 = " World";
std::string str3 = "!";
// 使用 + 运算符拼接
std::string result1 = str1 + str2 + str3;
// 使用 append 方法拼接
std::string result2 = str1;
result2.append(str2);
result2.append(str3);
std::cout << "result1: " << result1 << std::endl;
std::cout << "result2: " << result2 << std::endl;
return 0;
}
2.3 字符串查找与替换
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World! World is wonderful.";
// 查找子字符串第一次出现的位置
size_t pos1 = str.find("World");
if (pos1 != std::string::npos) {
std::cout << "第一次出现的位置: " << pos1 << std::endl;
}
// 从指定位置开始查找子字符串
size_t pos2 = str.find("World", pos1 + 1);
if (pos2 != std::string::npos) {
std::cout << "第二次出现的位置: " <<