c++strstr函数详解
时间: 2024-11-17 18:14:00 浏览: 4
`strstr()` 是 C++ 标准库中的字符串处理函数,属于 `<cstring>` 头文件的一部分。它的全名是 `char* strstr(const char*, const char*)`,用于在一个字符串(`source`)中查找另一个字符串(`target`),并返回指向第一个匹配子串的指针。
**函数原型及用法**:
```cpp
char* strstr(char* str1, const char* str2);
```
参数说明:
- `str1`: 需要搜索的源字符串,可以是 `NULL` 表示从当前开始搜索。
- `str2`: 要查找的模式字符串。
**返回值**:
- 如果找到 `str2` 在 `str1` 中的第一次出现,返回指向该子串的指针。
- 如果未找到匹配项,返回 `NULL`。
**例子**:
```cpp
char source[] = "Hello, world! This is a test.";
char* match = strstr(source, "test");
if (match != NULL) {
std::cout << "Found 'test' at position: " << (int)(match - source) << std::endl; // 输出:Found 'test' at position: 19
} else {
std::cout << "Substring not found." << std::endl;
}
```
这里,`strstr()` 查找字符串 `"test"`,并在 `"Hello, world! This is a test."` 中找到,并返回了对应的指针。
**注意事项**:
- `strstr()` 对大小写敏感,即只有完全匹配时才会返回非 `NULL` 指针。
- 如果需要忽略大小写或寻找多个匹配,你需要对源字符串和目标字符串进行相应处理,如转换为小写后再比较。
阅读全文