如何实现将一字符串按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;
}