C++中的`strstr`函数用于在一个字符串(称为`str`)中查找另一个子字符串(称为`substr`)
以下是`strstr`函数的一些查找示例:
1、查找普通英文单词:
```cpp
const char* str = "Hello, world!";
const char* substr = "world";
char* result = strstr(str, substr); // 查找成功,返回指向"world"的指针
```
2、查找空字符串:
```cpp
const char* str = "Hello, world!";
const char* substr = "";
char* result = strstr(str, substr); // 查找成功,返回指向str起始位置的指针
```
3、查找不存在的子字符串:
```cpp
const char* str = "Hello, world!";
const char* substr = "planet";
char* result = strstr(str, substr); // 查找失败,返回NULL
```
4、查找单个字符:
```cpp
const char* str = "Hello, world!";
const char* substr = "o";
char* result = strstr(str, substr); // 查找成功,返回指向第一个'o'的指针
```
5、查找包含特殊字符的子字符串:
```cpp
const char* str = "Hello, @world!";
const char* substr = "@world";
char* result = strstr(str, substr); // 查找成功,返回指向"@world"的指针
```
6、查找区分大小写的子字符串:
```cpp
const char* str = "Hello, world!";
const char* substr = "World";
char* result = strstr(str, substr); // 查找失败,返回NULL
```
需要注意的是,`strstr`函数对大小写敏感,所以在上面的示例中,查找"World"失败了。如果你想执行不区分大小写的查找,你需要将`str`和`substr`转换为相同的大小写,或者使用其他不区分大小写的字符串查找函数,如`strcasestr`(在某些平台上可用)。
此外,`strstr`函数可以处理包含多字节字符(如UTF-8编码的中文字符)的字符串,但需要注意按字节进行比较可能导致问题。在这种情况下,可以考虑使用专门针对宽字符或多字节字符的库。