怎样完成在屏幕上随便输入一行字符串,然后按照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;
}
