Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 아나그램이란 무엇입니까?

<시간/>

아나그램 문자열은 우리가 아나그램이라고 부르는 다른 문자열에서 동일한 횟수로 나타나는 모든 문자일 뿐입니다.

사용자가 두 개의 문자열을 입력합니다. 각 문자('a' ~ 'z')가 몇 번 나타나는지 세고 해당 카운트를 비교해야 합니다. 문자열에서 알파벳의 빈도는 문자열에 나타나는 횟수입니다.

두 문자열이 특정 알파벳의 빈도수가 같으면 이 두 문자열을 아나그램이라고 할 수 있습니다.

예시 1

문자열 1 - abcd

문자열 2 - bdac

이 두 문자열에는 한 번 나타나는 동일한 문자가 있습니다. 따라서 이 두 문자열은 아나그램입니다.

예시 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.