用C语言给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
时间: 2024-12-21 14:24:03 浏览: 9
c语言将字符串中的小写字母转换成大写字母
5星 · 资源好评率100%
在C语言中,你可以通过使用哈希表(也称为关联数组)来解决这个问题。以下是步骤:
1. 首先创建一个大小为26的数组(因为只有26个小写字母),每个元素初始化为0,表示字母尚未出现。
2. 遍历输入的字符串,对于每个字符,更新对应数组元素的计数。如果当前字符已经在数组中,计数加1;否则计数设为1。
3. 再次遍历数组,查找第一个计数为1的字符。一旦找到,这个字符就是仅出现一次的第一个字符。
4. 如果遍历完整个数组都没有找到计数为1的字符,则说明没有这样的字符,输出 "no"。
下面是简单的C代码示例:
```c
#include <stdio.h>
#include <string.h>
char findUniqueChar(char* str) {
int count[26] = {0};
for (int i = 0; str[i]; i++) {
count[str[i] - 'a']++;
}
for (int i = 0; i < 26; i++) {
if (count[i] == 1) {
return (char) ('a' + i);
}
}
// 如果没有找到,返回空格或特定字符,如 'n'
return 'n';
}
int main() {
char str[] = "abacabad";
char uniqueChar = findUniqueChar(str);
if (uniqueChar != 'n') {
printf("The first unique character is '%c'.\n", uniqueChar);
} else {
printf("No unique character found.\n");
}
return 0;
}
```
阅读全文