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編碼的中文字符)的字符串,但需要注意按字節進行比較可能導致問題。在這種情況下,可以考慮使用專門針對寬字符或多字節字符的庫。