std::string 查找子字符串
时间: 2023-11-16 11:06:39 浏览: 256
可以使用 std::string 的 find 函数来查找子字符串,示例代码如下:
```cpp
std::string str = "hello world";
std::string subStr = "world";
size_t pos = str.find(subStr);
if (pos != std::string::npos) {
std::cout << "子字符串在位置 " << pos << " 处" << std::endl;
} else {
std::cout << "未找到子字符串" << std::endl;
}
```
相关问题
std::string 中 查找 子字符串
在 C++ 的 `std::string` 类型中,查找子字符串通常通过 `find` 函数或者 `substr` 函数配合来完成。以下是两个常见操作:
1. **`find` 函数**:
- `size_t find(const string& str, size_t pos = 0) const;`
这个函数返回目标子串 "str" 在原字符串中第一次出现的位置(从 `pos` 开始计数,如果找不到则返回 `npos`)。例如:
```cpp
std::string myStr = "Hello, World!";
size_t index = myStr.find("World");
if (index != std::string::npos)
std::cout << "Found at position: " << index << std::endl;
```
2. **`substr` 函数**:
- `string substr(size_t pos = 0, size_t len = npos) const;`
可以用于获取原字符串从指定位置开始到指定长度的子串。若未提供长度,则直到字符串结束。比如:
```cpp
std::string subStr = myStr.substr(myStr.find("World") + 6); // 获取 "World!" 部分
```
注意,`find` 返回的是子串的起始位置,而 `substr` 则是从这个位置提取子串。
std::string 查找是否存在子字符串
在 C++ 的 `<string>` 库中,你可以使用 `std::string` 类的成员函数 `find()` 来查找子字符串的存在。这个函数接受一个目标子串作为参数,并返回子串第一次出现在原字符串中的位置(从0开始计数),如果没有找到,则返回 `npos`(常量,通常表示 `size_t(-1)`)。
下面是一个基本的例子:
```cpp
#include <string>
std::string main_str = "Hello, world!";
std::string substr_to_find = "world";
size_t pos = main_str.find(substr_to_find);
if (pos != std::string::npos) {
std::cout << "Substring found at position " << pos << std::endl;
} else {
std::cout << "Substring not found." << std::endl;
}
```
在这个例子中,如果找到了子串 "world",程序会输出其位置;如果没有找到,则输出 "Substring not found."。
阅读全文