字谜字符串只不过是在另一个字符串中出现相同次数的所有字符,我们称之为字谜。
用户输入两个字符串。我们需要计算每个字母(“ a”至“ z”)出现在其中的次数,然后比较它们相应的计数。字符串中字母的出现频率是它出现在其中的次数。
如果两个字符串对特定字母的频率计数相同,那么我们可以说这两个字符串是字谜。
字符串1-abcd
字符串2-bdac
这两个字符串具有相同的字母,仅出现一次。因此,这两个字符串是字谜。
字符串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中实现这种东西的方式?