string .find
时间: 2023-07-08 09:40:50 浏览: 96
std::string的find问题研究
在 C++ 中,`string` 类型提供了 `find` 函数来查找字符串中是否包含指定的子串,并返回第一次出现该子串的下标位置。其语法如下:
```c++
size_t find(const string& str, size_t pos = 0) const noexcept;
```
其中,`str` 表示要查找的子串,`pos` 表示搜索的起始位置,默认为 0。如果查找成功,则返回第一次出现该子串的下标位置,如果查找失败,则返回 `string::npos`。
例如,以下是使用 `find` 函数查找子串的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello, world!";
string sub = "world";
size_t pos = str.find(sub);
if(pos != string::npos) {
cout << "sub string found at position " << pos << endl;
} else {
cout << "sub string not found" << endl;
}
return 0;
}
```
在以上示例中,`find` 函数会查找 `str` 字符串中是否包含 `sub` 子串,如果包含,则返回子串在字符串中第一次出现的位置,否则返回 `string::npos`,表示未找到子串。
注意,`find` 函数返回的是 `string::size_type` 类型,如果要将其转换为 `int` 类型,需要进行类型转换,可以使用 `static_cast<int>` 函数来实现。
阅读全文