C 库函数 - strstr()

C 标准库 - <string.h> C 标准库 - <string.h>

描述

C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 \0

strstr() 是 C 标准库中的一个字符串处理函数,用于在一个字符串中查找子字符串的第一次出现位置。

声明

下面是 strstr() 函数的声明。

char *strstr(const char *haystack, const char *needle);

strstr() 函数用于在字符串 haystack 中查找子字符串 needle 的第一次出现位置。如果找到,则返回指向该位置的指针;如果未找到,则返回 NULL。

参数

  • haystack -- 要搜索的主字符串。
  • needle -- 要查找的子字符串。

返回值

返回指向 haystack 中第一次出现 needle 的位置的指针。如果 needle 未在 haystack 中找到,则返回 NULL。

实例

下面的实例演示了 strstr() 函数的用法。

实例 1

#include <stdio.h> #include <string.h> int main() { const char haystack[20] = "RUNOOB"; const char needle[10] = "NOOB"; char *ret; ret = strstr(haystack, needle); printf("子字符串是: %s\n", ret); return(0); }

让我们编译并运行上面的程序,这将产生以下结果:

子字符串是: NOOB

实例 2

#include <stdio.h>
#include <string.h>

int main() {
    const char *haystack = "Hello, world! This is a test string.";
    const char *needle = "world";

    // 在 haystack 中查找 needle
    char *result = strstr(haystack, needle);

    if (result != NULL) {
        printf("Substring found: %s\n", result);
    } else {
        printf("Substring not found.\n");
    }

    return 0;
}

代码说明:

  • strstr() 函数从 haystack 的开头开始查找 needle,直到找到匹配的子字符串或到达 haystack 的末尾。

  • 如果 needle 是空字符串(""),strstr() 会返回 haystack 的起始地址。

  • strstr() 是区分大小写的。如果需要不区分大小写的查找,可以使用 strcasestr()(非标准函数,可能需要特定库支持)。

输出结果:

Substring found: world! This is a test string.

C 标准库 - <string.h> C 标准库 - <string.h>