我正在尝试创建一个程序,它能够确定两个输入的单词是否是彼此的字谜。
我的导师告诉我的方式是计算一个单词的第一个字母的数量,然后与另一个单词进行比较,然后重复其余的字母。因此,如果这个词到了最后,那么它就会认为它们是字谜。然而,这就是他帮助我的所有事情,我真的在努力解决这个问题。
该程序需要打印它们是否是这样的字谜,
Success! "Carthorse" and "Orchestra" are anagrams!
编辑:感谢大家的所有回复,虽然我理解他们背后的整个想法,我发现将它们放入代码非常困难,是否有人能够简单地为我编写带注释的代码?它不是作业或其他任何东西,它只是一个个人项目。
答案 0 :(得分:1)
听起来你是C的新手!欢迎:))
这样的任务看起来很复杂,所以我在这里做的第一步就是把它分解为你可以google如何做的步骤。所以:
"计算一个单词的第一个字母的数量,然后与另一个单词进行比较,然后重复其余的字母"
循环显示第一个单词并为每个字母添加一个到正确的数组索引(a = 0,m = 12等) e.g。
int index = string [i] - ' a&#39 ;; //这将从字母中减去ascii值,得到a = 0等 letterCounts [指数] ++; //或letterCounts [index] - ;
循环显示第二个单词,并为每个字母从数组索引中减去一个
答案 1 :(得分:0)
将两个字符串转换为小写字符。
为字母表中的字母创建两个包含26个字符的数组。
遍历每个字符串,计算字母数,并递增字母数组中的相应元素。
然后比较两个字母数组,如果每个字符相等,那么你的字符串就是字谜。
答案 2 :(得分:0)
1)根据需要将两个字符串转换为小写(使用tolower
中的ctype.h
)。
2)对每个字符串进行排序,例如,使用qsort
中的stdlib.h
:
static int cmp(const void *a, const void *b) { return *(char *)a - *(char *)b; }
qsort(str1, strlen(str1), 1, (cmp));
qsort(str2, strlen(str2), 1, (cmp));
3)将排序后的字符串与strcmp
中的string.h
进行比较 - 如果相等,则为字谜,否则为。