當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。