C++:
提取子字符串
How to (如何操作)
Example 1: 使用 substr
#include <iostream>
#include <string>
int main() {
std::string fullString = "Hello, World!";
std::string subString = fullString.substr(7, 5); // 从位置7开始提取5个字符
std::cout << subString << std::endl; // 输出: World
return 0;
}
Example 2: 使用 string::iterator
#include <iostream>
#include <string>
int main() {
std::string fullString = "Hello, World!";
std::string subString(fullString.begin() + 7, fullString.begin() + 12);
std::cout << subString << std::endl; // 输出: World
return 0;
}
Deep Dive (深入探讨)
在C++中,字符串处理是常见任务。std::string
是 C++ 标准库的一部分,从 C++98 开始存在,提供了强大的字符串操作功能。
substr
功能从 C++98 开始就存在了,它是最直接的提取子字符串方法。在 C++11 中,std::string
得到了增强,包括范围构造函数和迭代器,为处理字符串提供更多的灵活性。
除了 substr
和迭代器,还有其他方式来提取字符串,如使用 std::istringstream
类,正则表达式(std::regex
)等。
实现细节上,substr
通常会创建一个新的字符串副本,这可能影响性能。在处理大量数据时,选择正确的实现方法非常关键。
See Also (另请参阅)
- C++ std::string 类文档: https://cplusplus.com/reference/string/string/
- C++ string handling 总览: https://cppreference.com/w/cpp/string/basic_string
- C++ 正则表达式库: https://cplusplus.com/reference/regex/