首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么实现将一字符串按ascall排序并找出ascall码最大的字符

2013-06-26 
如何实现将一字符串按ascall排序并找出ascall码最大的字符初学者,拜师求学,望能者帮帮,谢谢[解决办法]简单

如何实现将一字符串按ascall排序并找出ascall码最大的字符
初学者,拜师求学,望能者帮帮,谢谢
[解决办法]
简单写一下代码,具体楼主再自己 调调

char str[] = "abcdefg";

int len = strlen(str);
int i, j;
char max_ch;
char tmp;

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

按从小到大排序
[解决办法]
排序?用qsort


/**
 * @filesort.c
 * @brief
 */

#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N72

int cmp(const void *v1, const void *v2)
{
const unsigned char *c1, *c2;

c1 = (const unsigned char *)v1;
c2 = (const unsigned char *)v2;

return *c1 - *c2;
}

int main(int argc, char *argv[])
{
int i;
unsigned int seed;
char s[N + 1];

seed = time(NULL);
srand(seed);

for (i = 0; i < N; i++)
while (!isprint(s[i] = rand() % 128))
;
s[N] = '\0';

printf("s=%s\n", s);
qsort(s, N, 1, cmp);
printf("s=%s\n", s);

return 0;
}


[解决办法]
int cmp(const void *a ,const void *b)
{
    return (*((char*)a) - *((char*)b));
}

 int main()
{
    char str[] = "ajfiekrovmx";
    qsort(str ,strlen(str) ,sizeof(char) ,cmp);
    printf("%s\n最大的字符是 %c\n" ,str,str[strlen(str)-1]);
    return 0;
}

热点排行