阅读量:0
在 C++ 中,可以使用 std::string
类的成员函数 find()
来实现字符串的子串查找。
find()
函数的原型如下:
size_t find(const std::string& str, size_t pos = 0) const;
其中,str
是要查找的子串,pos
是可选参数,表示从哪个位置开始查找。如果省略该参数,则从字符串的开头开始查找。
函数返回子串在字符串中第一次出现的位置,如果没有找到则返回 std::string::npos
。
下面是一个简单的示例代码:
#include <iostream> #include <string> int main() { std::string str("hello world"); std::string sub("world"); size_t pos = str.find(sub); if (pos != std::string::npos) { std::cout << "子串的起始位置为:" << pos << std::endl; } else { std::cout << "未找到子串" << std::endl; } return 0; }
输出结果为:
子串的起始位置为:6
注意,find()
函数是区分大小写的。如果要执行不区分大小写的查找,可以在查找之前将字符串转换为小写(或大写):
std::string str("Hello World"); std::string sub("world"); std::transform(str.begin(), str.end(), str.begin(), ::tolower); std::transform(sub.begin(), sub.end(), sub.begin(), ::tolower); size_t pos = str.find(sub); if (pos != std::string::npos) { std::cout << "子串的起始位置为:" << pos << std::endl; } else { std::cout << "未找到子串" << std::endl; }
输出结果为:
子串的起始位置为:6