主要记录了逐个输入字符时,清空缓冲区残留回车符的问题
#include <stdio.h>
#include <stdlib.h>
//排序,升序
int cmp(const void* a,const void* b)
{
return *(char*)a - *(char*)b;
}
int main()
{
int n,m;
int i;
char ch;
char *str;
while(scanf("%d",&n) != EOF)
{
//分配空间
m = n * 20;
str = (char*)malloc(sizeof(char) * m);
//输入,多次运用getchar()获取scanf输入结束的回车符
ch = getchar();
for(i = 0; i < n; i++)
{
str[i] = getchar();
ch = getchar();
}
//排序
qsort(str,n,sizeof(str[0]),cmp);
//输出
for(i = 0; i < n; i++)
printf("%c ",str[i]);
printf("\n");
}
return 0;
}