C 库 - strstr() 函数



C 库的 strstr() 函数返回指向另一个字符串中指定子字符串的第一个索引的指针。strstr() 的主要目标是在较大的字符串中搜索子字符串,它有助于找到指定子字符串的第一次出现。

语法

以下是 C 库 strstr() 函数的语法:

char *strstr (const char *str_1, const char *str_2);

参数

此函数接受两个参数:

  • str_1 - 这是主字符串。

  • str_2 - 要在主字符串(即 str_1)中搜索的子字符串。

返回值

该函数根据以下条件返回值:

  • 如果在 str_1 中找到 str_2,则该函数返回指向 str_1 中 str_2 的第一个字符的指针;如果在 str_1 中未找到 str_2,则返回空指针。

  • 如果 str_2 为空字符串,则返回 str_1。

示例 1

以下是 C 库程序,它使用 strstr() 函数演示了子字符串在主字符串中的存在。

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

int main () {
   const char str[20] = "TutorialsPoint";
   const char substr[10] = "Point";
   char *ret;
   
   // strstr(main_string, substring)
   ret = strstr(str, substr);
   
   // Display the output
   printf("The substring is: %s\n", ret);
   
   return(0);
}

输出

执行代码后,我们得到以下结果:

The substring is: Point

示例 2

在这里,我们演示了如何使用 strstr() 函数在主字符串中搜索子字符串。

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

int main() {
   char str_1[100] = "Welcome to Tutorialspoint";
   char *str_2;
   str_2 = strstr(str_1, "ials");
   printf("\nSubstring is: %s", str_2);
   return 0;
}

输出

以上代码产生以下结果:

Substring is: ialspoint

这里,前四个字符表示给定字符串的子字符串。

示例 3

在下面的示例中,设置 if-else 条件以检查子字符串是否存在于主字符串中。

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

int main(){
   char str[] = "It is better to live one day as a King";
   char target[] = "live";
   char *p = strstr(str, target);

   if (p)
        printf("'%s' is present in the given string \"%s\" at position %ld", target, str, p-str);
   else
        printf("%s is not present \"%s\"", target, str);

    return 0;
}

输出

执行代码后,我们得到以下结果:

'live' is present in the given string "It is better to live one day as a King" at position 16
广告