Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のstrstr()関数とは何ですか?


Cライブラリ関数char* strstr(const char * haystack、const char *needle) 関数は、部分文字列needleの最初の出現を検出します 文字列内干し草の山 。終了する「\0」文字は比較されません。

文字の配列は文字列と呼ばれます。

宣言

配列を宣言するための構文は次のとおりです-

char stringname [size];

例-charstring[50];長さ50文字の文字列

初期化

  • 単一文字定数の使用-
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 文字列定数の使用-
char string[10] = "Hello":;

アクセス −「\0」に遭遇するまで文字列にアクセスするために使用される制御文字列「%s」があります。

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()関数に関する別のプログラムを見てみましょう。

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 : \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

  1. C言語のstrcmp()関数とは何ですか?

    Cライブラリ関数intstrcmp(const char * str1、const char * str2) str1が指す文字列を比較します str2が指す文字列へ 。 文字の配列は文字列と呼ばれます。 宣言 以下は配列の宣言です- char stringname [size]; 例-charstring[50];長さ50文字の文字列 初期化 単一文字定数の使用- char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,&ls

  2. C言語のstrcpy()関数とは何ですか?

    Cライブラリ関数char* strcpy(char * dest、const char * src) srcが指す文字列をコピーします 宛先へ 。 文字の配列は文字列と呼ばれます。 宣言 以下は配列の宣言です char stringname [size]; 例-charstring[50];長さ50文字の文字列 初期化 単一文字定数の使用- char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}