C++ string详解
发布人:shili8
发布时间:2024-11-15 00:43
阅读次数:0
**C++ String详解**
在 C++ 中,`std::string` 是一个非常重要的类,它代表了一个字符串。这个类提供了一系列的方法来操作字符串,使得开发者能够轻松地处理字符串相关的问题。
### 构造函数和析构函数`std::string` 有多个构造函数,可以用来创建一个新的 `std::string` 对象:
cpp// 默认构造函数,创建一个空的字符串std::string str; // 从 C 风格字符串(char*)创建一个 std::string 对象std::string str("Hello, World!"); // 从 const char* 创建一个 std::string 对象const char* cstr = "Hello, World!"; std::string str(cstr); // 从其他 std::string 对象复制创建一个新对象std::string src("Hello"); std::string dst(src);
`std::string` 的析构函数是隐式定义的,会在 `std::string` 对象被销毁时自动调用。
### 赋值运算符`std::string` 支持赋值运算符(=`):
cpp// 将一个 std::string 对象赋值给另一个 std::string 对象std::string src("Hello"); std::string dst; dst = src; // dst 现在等于 "Hello" // 将一个 C 风格字符串赋值给一个 std::string 对象const char* cstr = "World"; dst = cstr; // dst 现在等于 "World"
### 其他成员函数`std::string` 还提供了许多其他成员函数来操作字符串:
cpp// 返回 std::string 的长度(字符数) int len = str.length(); // 返回第一个字符char firstChar = str.front(); // 返回最后一个字符char lastChar = str.back(); // 插入一个新元素到指定位置str.insert(0, "Hello"); // 删除从开始位置到结束位置的所有元素str.erase(0,5); // 查找子串size_t pos = str.find("World"); if (pos != std::string::npos) { // 找到了 "World",pos 是它在 str 中的位置} // 替换子串str.replace(pos,6, "Universe"); // 比较两个 std::string 对象是否相等bool isEqual = str == dst;
### 常用函数`std::string` 还提供了许多常用的函数:
cpp// 将 std::string 转换为 C 风格字符串const char* cstr = str.c_str(); // 将 C 风格字符串转换为 std::stringstd::string str(cstr); // 将 std::string 转换为 int(使用 stoi()) int num = std::stoi(str); // 将 int 转换为 std::string(使用 to_string()) std::string str(num);
### 总结`std::string` 是 C++ 中一个非常重要的类,它提供了许多方法来操作字符串,使得开发者能够轻松地处理字符串相关的问题。通过了解 `std::string` 的构造函数、析构函数、赋值运算符和其他成员函数,开发者可以更好地使用这个类来完成各种任务。
### 参考* 《C++ Primer》第5 章:"String"
* 《Effective C++》第2 章:"Item1: Use const whenever possible"
* 《The C++ Programming Language》第10 章:"Strings"
以上是关于C++ string详解的内容,希望对你有所帮助。