★★★★★★★★★★难倒高手★★★★★★★★★★★★★★★

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:38:31
输入字符串,按字母表的顺序排,小写在大写前,例如:输入eEacdFgBAGbfC 输出aAbBcCdDeEfEgG,这题怎么编
知道的发上来,同时留下QQ,以后讨论
有好答案的+分,留QQ的追加分
pascal

/*
测试通过了,QQ272906134
pascal语法我不会,没法给你编,但我给你写的C语言程序里都是最基本的算法结构,你自己看看,看懂了自己写就行了。总之就是把26对大小写字母重新编码,使得编码后a<A<b<B……,然后对编码后的字符串排序,最后对排序结果逆过来解码,恢复为正确的ASCII码表示的字符串,输出就行了。
我用的编码算法是小写字母先减32再乘2,大写字母先乘2再加1。
解码逆过来解方程就行了。
那些说直接比较ASCII码的都没好好想,直接比较的结果是大写字母按字典序排在前面,小写字母接在后面,和要求不符。
*/
#include "stdafx.h"
#include "stdio.h"
#include "string.h"

typedef unsigned char byte;

void encode ( char* str , int n );
void decode ( char* str , int n );
void mysort ( char* str , int n );

main()
{
char mystr[255];
int len;

gets( mystr );
len = strlen( mystr );

encode( mystr , len );
mysort( mystr , len );
decode( mystr , len );

puts( mystr );
return 0;
}

void encode ( char *mystr , int n )
{
int i;
for ( i = 0 ; i < n ; i++ )
{
if( mystr[i] >= 'a' && m