📜  C C++中的strstr()(1)

📅  最后修改于: 2023-12-03 14:59:36.109000             🧑  作者: Mango

C/C++中的strstr()

简介

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() 函数不会检查字符串是否以空字符结尾,如果被查找字符串没有以空字符结尾,可能会导致内存泄漏或其他不可预期的后果。
参考链接