大门|大门IT 2005 |问题53

下面的C函数接受两个ASCII字符串,并确定其中一个是否是另一个的字谜。字符串s的字谜是通过排列s中的字母而获得的字符串。

null
int anagram (char *a, char *b) {
int count [128], j;
for (j = 0;  j < 128; j++) count[j] = 0;
j = 0;
while (a[j] && b[j]) {
A;
B;
}
for (j = 0; j < 128; j++) if (count [j]) return 0;
return 1;
}

为语句A和B选择正确的选项。 (A) A:计数[A[j]++和B:计数[B[j]]- (B) A:计数[A[j]++和B:计数[B[j]]++ (C) A:计数[A[j++]++和B:计数[B[j]]- (D) A:计数[A[j]++和B:计数[B[j+]]-

答复: (D) 说明:

#include <stdio.h>
char a[100], b[100];
int main( void ) {
int flag;
printf ( "Enter first string" );
gets (a);
printf ( "Enter second string" );
gets (b);
flag = anagram(a, b);
if (flag == 1)
printf ( ""%s" and "%s" are anagrams." , a, b);
else
printf ( ""%s" and "%s" are not anagrams." , a, b);
return 0;
return 0;
}
int anagram ( char *a, char *b) {
int count [128], j;
for (j = 0; j < 128; j++) count[j] = 0;
j = 0;
while (a[j] && b[j]) {
count [a[j]]++;
count[b[j++]]--;
}
for (j = 0; j < 128; j++) if (count [j]) return 0;
return 1;
}


这个问题的小测验 如果你在上面的帖子中发现任何错误,请在下面发表评论

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享