C语言 输入一串字符(字符串长度不超过200),从中挑选出小写字母a-z,其余字符剔除,并对挑选出的字符进行a-z的排序,输出排序后的字符串,如果没有挑选出任何有效字符,则输出error。
时间: 2024-04-09 13:28:13 浏览: 96
c语言输出一串字符串
你可以使用以下C代码来实现你的要求:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void sortString(char str[]) {
int count[26] = {0}; // 26个字母的计数数组
// 统计字符串中每个字母的个数
for (int i = 0; i < strlen(str); i++) {
if (islower(str[i])) {
count[str[i] - 'a']++;
}
}
// 按字母顺序输出挑选出的字符
int found = 0;
for (int i = 0; i < 26; i++) {
while (count[i] > 0) {
printf("%c", 'a' + i);
found = 1;
count[i]--;
}
}
if (!found) {
printf("error");
}
}
int main() {
char str[201];
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // 去除输入字符串中的换行符
sortString(str);
return 0;
}
```
这段代码中,我们使用了一个大小为26的计数数组来统计字符串中每个小写字母出现的次数。然后,我们按照字母顺序输出挑选出的字符,并使用一个标志变量`found`来判断是否有有效字符被挑选出来。如果没有挑选出任何有效字符,则输出"error"。
阅读全文