📅  最后修改于: 2023-12-03 14:59:36.109000             🧑  作者: Mango
strstr()
是 C/C++ 标准库中的字符串函数,用于在一个字符串中查找另一个子字符串的位置。该函数返回指向被查找字符串中第一个匹配子字符串的指针。如果没有找到,返回 NULL
。
该函数在 <cstring>
头文件中声明,其函数原型如下:
char* strstr(char* str1, const char* str2);
其中,str1
是被查找的字符串,str2
是要查找的子字符串。
下面给出一个使用 strstr()
的示例:
#include <iostream>
#include <cstring>
int main() {
char str1[] = "hello world";
char str2[] = "world";
char* result = strstr(str1, str2);
if (result != NULL) {
std::cout << "Substring found at index " << result - str1 << std::endl;
} else {
std::cout << "Substring not found" << std::endl;
}
return 0;
}
在上述示例中,我们在字符串 str1
中查找子字符串 str2
,并输出查找结果。执行上述代码,输出结果如下:
Substring found at index 6
strstr()
函数区分大小写,如果要匹配大小写不敏感的字符串,可以使用其他函数,如 strcasestr()
(需要 C99 或 POSIX 标准支持)。strstr()
在查找时区分空字符,如果被查找字符串中包含空字符,需要使用其他函数,如 memmem()
(需要 C99 或 POSIX 标准支持)。strstr()
在查找时只能匹配一个子字符串,如果要匹配多个子字符串,需要多次调用该函数。strstr()
函数不会检查字符串是否以空字符结尾,如果被查找字符串没有以空字符结尾,可能会导致内存泄漏或其他不可预期的后果。