c语言判断异位数
时间: 2023-08-03 11:03:31 浏览: 58
异位数指的是由相同的字母重新排列组成的两个字符串,例如 "silent" 和 "listen"。要判断两个字符串是否为异位数,可以先统计它们每个字符出现的次数,然后比较两个字符串中每个字符出现次数是否相等即可。
以下是一个判断两个字符串是否为异位数的 C 语言代码示例:
```c
#include <stdio.h>
#include <string.h>
// 判断两个字符串是否为异位数
int isAnagram(char* s, char* t) {
int countS[26] = {0}; // 统计字符串 s 中每个字符出现的次数
int countT[26] = {0}; // 统计字符串 t 中每个字符出现的次数
int lenS = strlen(s);
int lenT = strlen(t);
// 如果两个字符串长度不相等,则它们肯定不是异位数
if (lenS != lenT) {
return 0;
}
// 统计字符串 s 中每个字符出现的次数
for (int i = 0; i < lenS; i++) {
countS[s[i] - 'a']++;
}
// 统计字符串 t 中每个字符出现的次数
for (int i = 0; i < lenT; i++) {
countT[t[i] - 'a']++;
}
// 比较两个字符串中每个字符出现次数是否相等
for (int i = 0; i < 26; i++) {
if (countS[i] != countT[i]) {
return 0;
}
}
return 1;
}
int main() {
char s[] = "silent";
char t[] = "listen";
if (isAnagram(s, t)) {
printf("'%s' and '%s' are anagrams.\n", s, t);
} else {
printf("'%s' and '%s' are not anagrams.\n", s, t);
}
return 0;
}
```
输出结果为:
```
'silent' and 'listen' are anagrams.
```
阅读全文