什么是C语言中的strstr()函数?

C库函数char * strstr(const char * haystack,const char * needle)函数查找字符串haystack中子字符串needle的第一个匹配项。不比较结尾的'\ 0'字符。

字符数组称为字符串。

宣言

声明数组的语法如下-

char stringname [size];

例如-char string [50]; 长度为50个字符的字符串

初始化

  • 使用单字符常量-

char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}

  • 使用字符串常量-

char string[10] = “Hello”:;

访问-控制字符串“%s”用于访问字符串,直到遇到“ \ 0”为止。

该strstr()功能

  • 它用于搜索主字符串中是否存在子字符串。

  • 它返回指向s1中s2首次出现的指针。

语法

strstr()函数的语法如下-

strstr(mainsring,substring);

例子1

以下程序显示了strstr()功能的用法。

#include<stdio.h>
void main(){
   char a[30],b[30];
   char *found;
   printf("Enter a string:\n");
   gets(a);
   printf("Enter the string to be searched for:\n");
   gets(b);
   found=strstr(a,b);
   if(found)
      printf("%s is found in %s in %d position",a,b,found-a);
   else
      printf("-1 since the string is not found");
}
输出结果

执行以上程序后,将产生以下结果-

Enter a string: how are you
Enter the string to be searched for: you
you is found in 8 position

例子2

让我们来看看另一个关于strstr()函数的程序。

下面给出的是一个C程序,该字符串通过使用strstr库函数来查找另一个字符串中是否存在一个字符串作为子字符串-

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring two strings//
   char mainstring[50],substring[50];
   char *exists;
   //Reading strings//
   printf("Enter the main string : \n ");
   gets(mainstring);
   printf("Enter the sub string you would want to check if exists in main
   string :");
   gets(substring);
   //Searching for sub string in main string using library function//
   exists = strstr(mainstring,substring);
   //Conditions//
   if(exists){
      printf("%s exists in %s ",substring,mainstring);
   }else{
      printf("'%s' is not present in '%s'",substring,mainstring);
   }
}
输出结果

执行以上程序后,将产生以下结果-

Enter the main string : nhooo c Programming
Enter the sub string you would want to check if exists in main string :Programming
Programming exists in nhooo c Programming