21xrx.com
2024-03-29 17:18:24 Friday
登录
文章检索 我的文章 写文章
C 中的 Anagram 程序
2021-07-07 10:04:18 深夜i     --     --
C n a g r a m

C 中的 Anagram 程序来检查两个字符串是否是 anagram。 假定它们仅包含小写字母。 如果其中一个的字母可以重新排列以形成另一个,则它们是彼此的字谜。 因此,在字谜字符串中,所有字符出现的次数相同。 例如,“ABC”和“CAB”是字谜,因为每个字符“A”、“B”和“C”在两个字符串中出现的次数相同(此处为一次)。

用户输入两个字符串,我们计算每个字母('a' 到 'z')在其中出现的次数,然后比较它们对应的计数。 一个字母在字符串中出现的频率是它在其中出现的次数。 例如,字符串“programming”中“m字母表”的频率是“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;
}

 

C anagram 程序的输出:

下载字谜程序。

  
  
下一篇: C 读取文件

评论区

{{item['qq_nickname']}}
()
回复
回复