怎么用gets函数输入一串字符,并将其排序

怎么用gets函数输入一串字符,并将其用a[i]排序
还有就是char a[30]中的30能用变量n代替吗?

char a[30]中的30能用变量n代替吗? 有的编译器支持,有的不支持,用常量定义,代码通用性强些。供参考:

#include <stdio.h>
#define N 30
int main()
{
    int  i,j;
    char a[N], t;
    gets(a);
    for (i = 0;a[i+1]; i++)
    {
        for (j = 0;a[j + i + 1]; j++)
        {
            if (a[j] > a[j+1])
                t = a[j], a[j] = a[j+1], a[j+1] = t;
        }
    }
    puts(a);
    return 0;
}

int a[100];
gets(a);

如果n已知(如前面有scanf函数输入n)就可以