程序没问题,为什么结果不对呢?

程序代码:
#include<string.h>
#include<stdio.h>
int main(void)
{
char str[100];
int i, j, m;
printf("请输入字符:\n");
gets(str);
m = strlen(str);
for(i=0; i<m-1; ++i){
for(j=0; j<m-1-i; ++j){
if(str[j]>str[j+1]){
char temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
printf("排序后:\n");
puts(str);
return 0;
}