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() 函式
用於搜尋子字串是否存在於主字串中。
它返回 s2 在 s1 中第一次出現的位置的指標。
語法
strstr() 函式的語法如下 −
strstr(mainsring,substring);
示例
以下程式展示瞭如何使用 strstr() 函式。
#include<stdio.h> void main(){ char a[30],b[30]; char *found; printf("Enter a string:
"); gets(a); printf("Enter the string to be searched for:
"); 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() 函式的另一個程式。
下面是使用 strstr 庫函式在一個字串中查詢另一個字串是否作為子字串存在的 C 語言程式。
#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 :
"); 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
廣告