在C++的STL(标准模板库)中,string容器是用于存储和操作字符串的类。它提供了许多方便的方法来处理字符串,比如插入、删除、替换和查找等。
使用string容器需要包含头文件<string>。下面是一些常用的string容器的成员函数和示例代码:
- 构造函数和赋值操作符:
- string():默认构造函数,创建一个空字符串。
- string(const char* str):用C风格字符串初始化string对象。
- string(const string& str):用另一个string对象初始化当前对象。
- string& operator=(const char* str):将C风格字符串赋值给string对象。
- string& operator=(const string& str):将另一个string对象赋值给当前对象。
示例代码:
#include <iostream>
#include <string>
int main() {
// 构造函数和赋值操作符示例
std::string str1; // 默认构造函数
std::string str2("Hello"); // 用C风格字符串初始化
std::string str3 = str2; // 用另一个string对象初始化
std::string str4;
str4 = "World"; // 赋值操作符
std::cout << str1 << std::endl; // 输出空字符串
std::cout << str2 << std::endl; // 输出Hello
std::cout << str3 << std::endl; // 输出Hello
std::cout << str4 << std::endl; // 输出World
return 0;
}
- 连接和拼接字符串:
- string& operator+=(const char* str):将C风格字符串连接到当前字符串的末尾。
- string& operator+=(const string& str):将另一个string对象连接到当前字符串的末尾。
- string operator+(const char* str):返回当前字符串与C风格字符串连接后的新字符串。
- string operator+(const string& str):返回当前字符串与另一个string对象连接后的新字符串。
示例代码:
#include <iostream>
#include <string>
int main() {
// 连接和拼接字符串示例
std::string str1 = "Hello";
std::string str2 = "World";
std::string str3 = str1 + " " + str2; // 使用操作符+
str1 += ", "; // 使用+=
str1 += str2;
std::cout << str1 << std::endl; // 输出Hello, World
std::cout << str3 << std::endl; // 输出Hello World
return 0;
}
- 查找字符串:
- size_type find(const char* str, size_type pos = 0) const:在当前字符串中从pos位置开始查找C风格字符串,返回第一次出现的位置。
- size_type find(const string& str, size_type pos = 0) const:在当前字符串中从pos位置开始查找另一个string对象,返回第一次出现的位置。
示例代码:
#include <iostream>
#include <string>
int main() {
// 查找字符串示例
std::string str = "Hello, World!";
size_t pos = str.find("World");
if (pos != std::string::npos) {
std::cout << "Found at position: " << pos << std::endl; // 输出Found at position: 7
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
- 字符串的长度和截取:
- size_type length() const:返回当前字符串的长度。
- string substr(size_type pos = 0, size_type count = npos) const:返回从pos位置开始的count个字符的子串。
示例代码:
#include <iostream>
#include <string>
int main() {
// 字符串的长度和截取示例
std::string str = "Hello, World!";
std::cout << "Length: " << str.length() << std::endl; // 输出Length: 13
std::string substr = str.substr(7, 5); // 截取子串
std::cout << "Substring: " << substr << std::endl; // 输出Substring: World
return 0;
}
以上仅是string容器的一些基本用法,还有许多其他功能和成员函数可以使用。详细的使用方法可以参考C++的文档或教程。