打印只出现过一次的字母
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
//找出只出现过一次的字母
int main() {
int n[26] = { 0 };//初始化
int i;
char x[1005] = { 0 };
printf("输入字符串:\n");
scanf("%s", x);
int l = strlen(x);
for (i = 0; i < l; i++) {
n[x[i] - 'a']++;//计数
}
for (i = 0; i < l; i++) {
if (n[x[i] - 'a'] == 1){//判断是否出现过一次
printf("只出现过一次的字母:\n%c", x[i]);
return 0;
}
}
printf("NO");
return 0;
}
n[x[i] - ‘a’]++ : n[26]被定义为整形,故括号内为acsii码值。这里利用字母所对应acsii码值,对出现过的字母进行标记。
运行结果:
输入字符串:
abcabcd
只出现过一次的字母:
d
有问题请指出