当前位置: 首页 > 编程笔记 >

什么是C语言的字谜?

姚韬
2023-03-14
本文向大家介绍什么是C语言的字谜?,包括了什么是C语言的字谜?的使用技巧和注意事项,需要的朋友参考一下

字谜字符串只不过是在另一个字符串中出现相同次数的所有字符,我们称之为字谜。

用户输入两个字符串。我们需要计算每个字母(“ a”至“ z”)出现在其中的次数,然后比较它们相应的计数。字符串中字母的出现频率是它出现在其中的次数。

如果两个字符串对特定字母的频率计数相同,那么我们可以说这两个字符串是字谜。

例子1

字符串1-abcd

字符串2-bdac

这两个字符串具有相同的字母,仅出现一次。因此,这两个字符串是字谜。

例子2

字符串1-programming

字符串2-gramming

输出-字符串不是字谜。

示例

以下是字谜的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;
   // 计算第一个字符串的字符频率
   while (a[c] != '\0') {
      first[a[c]-'a']++;
      c++;
   }
   c = 0;
   while (b[c] != '\0') {
      second[b[c]-'a']++;
      c++;
   }
   // 比较字符的出现次数
   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.
 类似资料:
  • 主要内容:文件流我们对文件的概念已经非常熟悉了,比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种,最主要的作用是保存数据。 在操作系统中,为了统一对各种硬件的操作,简化接口,不同的硬件设备也都被看成一个文件。对这些文件的操作,等同于对磁盘上普通文件的操作。例如: 通常把显示器称为标准输出文件,printf 就是向这个文件输出数据; 通常把键盘称为标准输入文件,scanf 就是从这个文件读取数

  • 本文向大家介绍C语言与JAVA的区别是什么(推荐),包括了C语言与JAVA的区别是什么(推荐)的使用技巧和注意事项,需要的朋友参考一下 首先来说说他们各自的历史:C语言的发展历史 C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言) 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。 1967年,剑桥大学的M

  • 正式学习 Python 之前,我们有必要先搞清楚【 编程语言】这个概念。 在我们很小的时候,父母就教我们开口说话,也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习,我们在不知不觉中学会了说话,也能听懂其他小朋友说话的意思,于是我们开始用语言与他人交流。 世界上存在许多种语言,包括汉语、英语、日语、俄语等等,每种语言都有固定的格式,比如汉语(中国话),每个汉字代表着不同的意思,我们必须正确

  • 本文向大家介绍什么是汇编语言,包括了什么是汇编语言的使用技巧和注意事项,需要的朋友参考一下  汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器

  • 未解决原始关闭原因 我是一个C语言初学者。我遇到过在我正在处理的头文件中使用的< code>override关键字。我可以知道,什么是真正使用< code>override,也许用一个例子就容易理解了。

  • 我试图在Rust中实现一些类似于类中的C虚拟函数的东西,我会有一个带有数据的基本结构,然后我会保留一些未定义的函数,如以下示例: 我试图用函数指针来实现它,但是没有成功。我可以在A的函数中使用trait,并在另一个类中实现A,但是我会丢失结构的数据。什么最好(最快?)Rust中实现这种东西的方式?