str.find返回值
时间: 2024-09-12 21:14:33 浏览: 38
`std::string::find` 函数用于在字符串中查找一个字符或者一个子串,并返回找到的位置。如果查找失败,则返回一个特殊值 `std::string::npos`。
以下是 `std::string::find` 函数的一些重载形式以及它们的返回值:
1. `size_t find (const char* s, size_t pos = 0) const;`
这个函数查找子串 `s` 从位置 `pos` 开始的第一次出现。如果找到,则返回子串的起始位置;否则返回 `std::string::npos`。
2. `size_t find (const char* s, size_t pos, size_t n) const;`
这个函数查找长度为 `n` 的子串 `s` 从位置 `pos` 开始的第一次出现。如果找到,则返回子串的起始位置;否则返回 `std::string::npos`。
3. `size_t find (char c, size_t pos = 0) const;`
这个函数查找字符 `c` 从位置 `pos` 开始的第一次出现。如果找到,则返回字符的位置;否则返回 `std::string::npos`。
4. `size_t find (const std::string& str, size_t pos = 0) const;`
这个函数查找字符串 `str` 从位置 `pos` 开始的第一次出现。如果找到,则返回子串的起始位置;否则返回 `std::string::npos`。
`std::string::npos` 是一个 `size_t` 类型的静态常量成员,其值等于 `size_t` 能表示的最大值。它被定义在 `<string>` 头文件中。
代码示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str("Hello, world!");
// 查找字符 'o' 的位置
size_t pos = str.find('o');
if (pos != std::string::npos) {
std::cout << "字符 'o' 首次出现在位置: " << pos << std::endl;
} else {
std::cout << "在字符串中未找到字符 'o'" << std::endl;
}
// 查找子串 "world" 的位置
pos = str.find("world");
if (pos != std::string::npos) {
std::cout << "子串 \"world\" 首次出现在位置: " << pos << std::endl;
} else {
std::cout << "在字符串中未找到子串 \"world\"" << std::endl;
}
return 0;
}
```
阅读全文