题目描述:https://pycoder.blog.csdn.net/article/details/125923027
想不到这也是一道qsort的题目~
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
char str[1000];
int strArrIndex;
char strArr[1000][6];
void input_handler(void)
{
char *tmp = NULL;
tmp = strtok(str, ",");
strcpy(strArr[strArrIndex++], tmp);
while (1) {
tmp = strtok(NULL, ",");
if (tmp == NULL) break;
strcpy(strArr[strArrIndex++], tmp);
}
}
int myCmp(const void *a, const void *b)
{
char *aa = (char *)a;
char *bb = (char *)b;
char tmpA[12] = {0};
char tmpB[12] = {0};
char tmp[12] = {0};
strcpy(tmpA, aa);
strcpy(tmp, aa);
strcpy(tmpB, bb);
int data1 = atoi(strcat(tmpA, tmpB));
int data2 = atoi(strcat(tmpB, tmp));
return data2 - data1;
}
int main(void)
{
char res[1000] = {0};
strArrIndex = 0;
gets(str);
input_handler();
qsort(strArr, strArrIndex, sizeof(strArr[0]), myCmp);
for (int i = 0; i < strArrIndex; i++) {
strcat(res, strArr[i]);
}
printf("%s\n", res);
return 0;
}