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

C言語のアナグラムとは何ですか?


アナグラム文字列は、アナグラムと呼ばれる別の文字列に同じ回数出現するすべての文字に他なりません。

ユーザーは2つの文字列を入力します。各文字(「a」から「z」)がそれらに現れる回数を数え、次にそれらの対応する数を比較する必要があります。文字列内のアルファベットの頻度は、文字列に表示される回数です。

2つの文字列の特定のアルファベットの頻度が同じである場合、それらの2つの文字列はアナグラムであると言えます。

例1

文字列1-abcd

文字列2− bdac

これらの2つの文字列には、1回出現する同じ文字があります。したがって、これら2つの文字列はアナグラムです。

例2

文字列1-プログラミング

文字列2-グラミング

出力-文字列はアナグラムではありません。

以下はアナグラムのCプログラムです-

#include <stdio.h>
int check_anagram(char [], char []);
int main(){
   char a[1000], b[1000];
   printf("Enter two strings\n");
   gets(a);
   gets(b);
   if (check_anagram(a, b))
      printf("The strings are anagrams.\n");
   else
      printf("The strings aren't anagrams.\n");
      return 0;
}
int check_anagram(char a[], char b[]){
   int first[26] = {0}, second[26] = {0}, c=0;
   // Calculating frequency of characters of the first string
   while (a[c] != '\0') {
      first[a[c]-'a']++;
      c++;
   }
   c = 0;
   while (b[c] != '\0') {
      second[b[c]-'a']++;
      c++;
   }
   // Comparing the frequency of characters
   for (c = 0; c < 26; c++)
   if (first[c] != second[c])
      return 0;
      return 1;
}

出力

上記のプログラムを実行すると、次の出力が生成されます-

Run 1:
Enter two strings
abcdef
deabcf
The strings are anagrams.
Run 2:
Enter two strings
tutorials
Point
The strings aren't anagrams.

  1. 文字列とは何ですか? C言語で文字列を宣言して初期化します

    文字の配列(または)文字の集合は文字列と呼ばれます。 宣言 以下の宣言を参照してください- char stringname [size]; 例-chara[50];長さ50文字の文字列。 初期化 初期化は次のとおりです- 単一の文字を使用する 定数- char string[20] = { ‘H’, ‘i’, ‘l’, ‘l’, ‘s’ ,‘\0’} 文字列定数の使用- char string[20] = "H

  2. 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