怎样完成在屏幕上随便输入一行字符串,然后按照ASCII排序从小到大输出到屏幕上?
示例:Please Enter Strings:
2395nAg
Sort Result Is:
2
3
5
9
g
n
A
root@~ #cat p.c #include <stdio.h> #include <string.h> int main (void) { char str[100]; gets(str); void ps(char str[]); ps(str); return 0; } void ps(char str[]) { int i,j; char t; for(i=0;i<strlen(str)-1;i++) { for(j=i+1;j<strlen(str);j++) { if(str[i]>str[j]) { t=str[i]; str[i]=str[j]; str[j]=t; } } } for(i=0;str[i]!='\0';i++) { printf("%c\n",str[i]); } } root@~ #./p 2395nAg 2 3 5 9 A g n root@~ #
#include <stdio.h> #include <string.h> main () { int i,j; char str[100],t; gets(str); //从键盘输入字符串 for(i=0;i<strlen(str)-1;i++) { for(j=i+1;j<strlen(str);j++) { if(str[i]>str[j]) //比较前后字符 { t=str[i]; str[i]=str[j]; str[j]=t; } } } for(i=0;str[i]!='\0';i++) printf("%c\n",str[i]); //从小到大输出 return 0; }
#include"stdio.h" #include"string.h" #define MAX 100 int main() { char ptr[MAX],temp; int i,j; printf("请输入一串字符:\n"); gets(ptr); for(i=0;i<strlen(ptr);i++) for(j=i+1;j<strlen(ptr);j++) { if(*(ptr+j)<*(ptr+i)) { temp=*(ptr+j); *(ptr+j)=*(ptr+i); *(ptr+i)=temp; } } puts(ptr); return 0; }