当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 strstr()用法及代码示例


C库函数char *strstr(const char *haystack, const char *needle)函数查找第一次出现的子串needle在字符串中haystack.不比较终止的 '\0' 字符。

字符数组称为字符串。

声明

声明数组的语法如下 -

char stringname [size];

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

初始化

  • 使用单字符常量 -
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 使用字符串常量 -
char string[10] = "Hello":;

Accessing− 有一个控制字符串 "%s" 用于访问字符串,直到遇到“\0”。

strstr() 函数

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

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

用法

strstr() 函数的语法如下 -

strstr(mainsring,substring);

示例

下面的程序显示了 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:TutorialsPoint c Programming
Enter the sub string you would want to check if exists in main string:Programming
Programming exists in TutorialsPoint c Programming

相关用法


注:本文由纯净天空筛选整理自Bhanu Priya大神的英文原创作品 What is strstr() Function in C language?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。