用C语言编程,将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串输出

编写 程序···
我只是个初学者,只要简单点的就好,
越简单越好懂,谢谢!

代码如下:

#include <stdio.h>
#include <string.h>

int main()
{
char str[] = "Hello World!", ch;
int i, j, len;

len = strlen(str);

for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (str[i] > str[j]) {
ch = str[i];
str[i] = str[j];
str[j] = ch;
}
}
}

printf("%s\n", str);

return 0;
}

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-05
#include "stdio.h"
#include "string.h"
int main()
{char s[100],t;
int i,j,sum;
printf("Input:\n");
gets(s);
sum=strlen(s);
for(i=0;i<sum-1;i++)
for(j=0;j<sum-i-1;j++)
if(s[j+1]<=s[j]){t=s[j];s[j]=s[j+1];s[j+1]=t;}
printf("Output:\n");
puts(s);
return 0;
}追问

我只是个初学者,你这个 对我来说有点复杂了,有木有简单点的啊!
越简单越好懂,谢谢!

追答

#include "stdio.h"
#include "string.h"
int main()
{char s[100],t;
int i,j,sum;
printf("Input:\n");
gets(s);//输入字符串,以回车结束读取
sum=strlen(s);//求输入的字符串的长度
for(i=0;i<sum-1;i++)
for(j=0;j<sum-i-1;j++)
if(s[j+1]<=s[j]){t=s[j];s[j]=s[j+1];s[j+1]=t;}//检查相邻两个字符串的AIISC码,从小到大排序
printf("Output:\n");
puts(s);//输出排序好的字符串
return 0;
}
排序方法用的是起泡法,已经比较简单了

追问

能解释下这几个是什么意思吗?我们没有接触过
#include "string.h"
char s[100]
return 0

追答

#include "string.h" //包含头文件,使用strlen标准函数时要包含的头文件,就好比你用printf就要包含#include,加双引号和加括号的区别是双引号是从当前目录开始查找头文件,括号是从标准路径开始查找头文件,就是你安装编译器时的路径,一般区别不大
char s[100] //定义一个字符型数组,大小是100,你最多能输入100个字符
return 0//main函数的返回值,返回0代表程序正常结束

追问

哦,谢谢,给你满意!
下面还有个,能写下吗?对这个东西深深感到头疼···

题目:输入一串字符,将字符串中的字符反序输出

追答

#include
#include

void main()
{
void string(char fp[]);//声明函数
char ap[80];//定义字符数组
printf("please input string..\n");
gets(ap);//输入字符串,回车结束
string(ap);//调用函数,将字符串反序
printf("%s\n",ap);//输出反序后的字符串
}

void string(char fp[])
{
char l,x,t;
l=strlen(fp);//求要反序的字符串的长度

for(x=0; x<l/2; x++)//字符串交换的次数
{
t = fp[x];
fp[x] = fp[l-x-1];//第一个字符串和最后一个字符串交换,第二个和倒数第二个,依此类推
fp[l-x-1] = t;//交换完成
}
}

本回答被提问者采纳
第2个回答  2014-06-20
#include <stdio.h>
#include <string.h>
void sort(char *str,int len)
{
int i,j;
char ch;
for(i=0;i<len;i++)
{
for(j=0;j<len;j++)
if(str[i]<str[j])
{
ch = str[i];
str[i] = str[j];
str[j] = ch;
}
}
}

int main(void)
{
char str[120];
int len;
printf("请输入字符串:");
scanf("%s",str);
len = strlen(str);
sort(str,len);
printf("%s \n",str);
return 0;
}
谢谢!满意请采纳!
相似回答