输入两个字符串str1和str2,查找str2在str1里首次出现的位置c++
时间: 2024-10-25 12:17:34 浏览: 12
在 C++ 中,你可以使用 `std::string` 的内置函数或者遍历的方式找到 `str2` 首次出现在 `str1` 中的位置。这里有一个简单的示例,使用线性搜索:
```cpp
#include <string>
#include <string_view> // For C++17 and later
int findSubstring(const std::string& str1, const std::string& str2) {
if (str2.empty()) {
return 0; // 如果str2为空,直接返回0
}
size_t pos = str1.find(str2);
// 返回首次出现的位置,如果找不到则返回 std::string::npos(通常等于 -1)
return pos != std::string::npos ? pos : -1;
}
// 使用示例
std::string main_str = "Hello, world!";
std::string sub_str = "world";
int position = findSubstring(main_str, sub_str);
if (position != -1) {
std::cout << "Substring found at index: " << position << std::endl;
} else {
std::cout << "Substring not found" << std::endl;
}
```
在这个例子中,`find()` 函数会在 `str1` 中查找 `str2`,并返回第一个匹配位置。如果没有找到,则返回 `std::string::npos`。
阅读全文