输入一串字符(字符串长度不超过200),从中挑选出小写字母a-z,其余字符剔除,并对挑选出的字符进行a-z的排序,输出排序后的字符串,如果没有挑选出任何有效字符,则输出error。使用C语言实现
时间: 2024-02-17 09:02:01 浏览: 79
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[201]; // 存储字符串
char result[27] = {'\0'}; // 存储挑选出的字符
int len, index = 0; // len为字符串长度,index为result数组的下标
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') { // 判断是否为小写字母
if (result[str[i] - 'a'] == '\0') { // 判断该字母是否已经存在于result数组中
result[str[i] - 'a'] = str[i]; // 将该字母加入result数组中
index++;
}
}
}
if (index == 0) { // 判断是否挑选出有效字符
printf("error\n");
} else {
for (int i = 0; i < 26; i++) {
if (result[i] != '\0') {
printf("%c", result[i]); // 输出挑选出的字符
}
}
printf("\n");
}
return 0;
}
```
注释已经说明了每一行代码的作用。需要注意的是,我们使用了一个result数组来存储挑选出的字符,并对其进行去重和排序。排序的方法很简单,只需要遍历一遍result数组,将数组中不为'\0'的元素输出即可。
阅读全文