c语言:给你一个仅包含小写英文字母的字符串,请你编程判断这个字符串所有字符是否全都不同。
时间: 2024-12-24 11:41:28 浏览: 8
在C语言中,你可以通过创建一个哈希表(例如布尔数组)来检查字符串中的每个字符是否唯一。以下是简单的步骤:
1. 初始化一个长度等于ASCII码最大值(通常是 'z' 的 ASCII 码)的布尔数组,所有的元素初始化为 `false`,表示初始状态下没有字符被访问过。
2. 遍历输入的字符串,对于每个字符,将其对应的布尔数组位置设为 `true`。如果某个位置已经是 `true`,说明找到了重复的字符。
3. 遍历结束后,如果所有位置都是 `false`,则字符串的所有字符都不同;否则,存在重复字符。
下面是一个示例函数的伪代码实现:
```c
#include <stdbool.h>
bool is_unique_chars(char* str) {
int len = strlen(str);
bool char_set[len]; // 假设我们只处理小写字母,ASCII码范围0-122
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') { // 只考虑小写字母
if (char_set[str[i]-'a']) { // 如果对应位置已经为真,说明有重复
return false;
}
char_set[str[i]-'a'] = true; // 设置为真表示已遇到该字符
}
}
return true; // 所有字符均不重复
}
```
阅读全文