find在c++中的用法
时间: 2024-09-08 13:03:59 浏览: 47
在 C++ 中,`find` 是 `<string>` 标准库中提供的一个成员函数,用于在一个字符串中搜索指定的子串并返回它的起始位置。这个函数有两个重载版本:
1. `size_type find(const char* s, size_type pos = 0)`:这里,`s` 是要查找的子串的字符指针,`pos` 表示搜索的起始位置,默认从字符串开头开始搜索。如果找到子串,它会返回子串的第一个字符的位置(从0开始计数),如果没有找到,它将返回 `npos`(表示 `string` 类的一个特殊值,通常被定义为 `std::string::npos`,表示“未找到”)。
示例:
```cpp
std::string myString = "Hello, world!";
size_t position = myString.find("world");
if (position != std::string::npos) {
std::cout << "Substring found at position: " << position << std::endl;
} else {
std::cout << "Substring not found" << std::endl;
}
```
2. `size_type find(const string& s, size_type pos = 0)`:这个版本与第一个类似,只是传入的是另一个字符串作为子串。
3. `size_type find(size_type pos, const char* s, size_type n = npos)`:这是一个更通用的版本,允许指定最多 `n` 个字符进行搜索,并从 `pos` 开始搜索。
当你使用 `find` 后,可以根据返回的值来判断子串是否存在于原字符串中。记住,`npos` 并不是一个实际的索引,而是一个特殊的标记,所以在处理结果时要考虑到这一点。
阅读全文