anagram就是两个单词,字母完全一样,但顺序不一样。求一个完整的程序,判断两串字符串是否是anagram。
比如,tom marvolo riddle和 i am lord voldemort这两串字符就是anagram。空格的数量不影响判断。例如第一串字符tom marvolo riddle中有两个空格,而第二串字符i am lord voldemort中有三个空格,但这两串字符串的字母完全一样只是顺序不一样,这两个仍然算一对anagram。
要求:1)不需要用到printf,直接在函数中写argv[1] argv[2]
2)如果用户运行时没有输入两串字符串,要打印出一条错误提示
3)如果输入的两串字符串是anagram,打印成功提示,如果不是,打印错误提示
4)两串字符串只包含小写字母和空格
先跪谢拉
运行过了,不对诶,不管输入什么结果都是success
追答#include
#include
#include
void main(int argc, char *argv[])
{
/*
cnt[0..25][0..1]
0:a, 1:b, ... 25:z
0: lower, 1: upper
*/
int cnt1[26][2], cnt2[26][2];
int c, len1, len2;
if(argc == 3){
/* Initliase the counters */
for(c=0;c= 'a' && *(argv[1]+c) = 'A' && *(argv[1]+c) = 'a' && *(argv[2]+c) = 'A' && *(argv[2]+c) <= 'Z')
cnt2[*(argv[2]+c) - 'A'][1]++;
else{}
}
/* Compare the couters*/
for(c=0;c<26;c++){
if(cnt1[c][0] != cnt2[c][0] || cnt1[c][1] != cnt2[c][1]){
printf("fail\n");
return;
}
}
if(c==26) printf("success\n");
}
else{
printf("Input Error\n");
}
}