标题 删除特定字符后排序输出
问题描述 输入字符串 s(长度不超过100),将字符串 s 中所有字符“*”删除,并将修改后的字符串按照 ASCII 码从小到大的顺序输出。
输入说明 输入数据为一行包含空格的字符串。
输出说明 输出将原字符串中“*”删除后再排序的新字符串。
输入样例 *dgjk* %&* *df78dg 88**
输出样例 %&7888dddfggjk
代码实现:
#include <stdio.h>
#include <string.h>
int main() {
char s[1001];
int a[10001];
gets(s);
for (register int i = 0; i < strlen(s); i++) {
if (s[i] != '*') {
a[s[i]]++;//字符类型转换为其对应的ASCLL码
}
}
for (register int i = 0; i <= 300; i++) {
while (a[i] != 0) {
printf("%c", i);//按数组下标从小到大的顺序输出,自动排序
a[i]--;//数组中存储出现了多少次
}
}
return 0;
}