什么是C语言中的strstr()函数?
C库函数char*strstr(constchar*haystack,constchar*needle)函数查找字符串haystack中子字符串needle的第一个匹配项。不比较结尾的'\0'字符。
字符数组称为字符串。
宣言
声明数组的语法如下-
char stringname [size];
例如-charstring[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