#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int cmp(const void *a, const void *b){
const char *x = a;
const char *y = b;
if( ix > iy ) return 1;
else if( ix < iy ) return -1;
if(isupper((unsigned char)*x
)) return -1; if(isupper((unsigned char)*y
)) return 1; return 0;
}
int main(void){
char letters[] = "baBadxD";
printf("before: %s\n", letters
); qsort(letters
, sizeof(letters
)-1, sizeof(*letters
), cmp
); printf("after : %s\n", letters
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgppbnQgY21wKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpewoJY29uc3QgY2hhciAqeCA9IGE7Cgljb25zdCBjaGFyICp5ID0gYjsKCWNoYXIgaXggPSB0b2xvd2VyKCp4KTsKCWNoYXIgaXkgPSB0b2xvd2VyKCp5KTsKCWlmKCBpeCA+IGl5ICkgcmV0dXJuIDE7CgllbHNlIGlmKCBpeCA8IGl5ICkgcmV0dXJuIC0xOwoJaWYoaXN1cHBlcigodW5zaWduZWQgY2hhcikqeCkpIHJldHVybiAtMTsKCWlmKGlzdXBwZXIoKHVuc2lnbmVkIGNoYXIpKnkpKSByZXR1cm4gIDE7CglyZXR1cm4gMDsKfQoKaW50IG1haW4odm9pZCl7CgljaGFyIGxldHRlcnNbXSA9ICJiYUJhZHhEIjsKCglwcmludGYoImJlZm9yZTogJXNcbiIsIGxldHRlcnMpOwoJcXNvcnQobGV0dGVycywgc2l6ZW9mKGxldHRlcnMpLTEsIHNpemVvZigqbGV0dGVycyksIGNtcCk7CglwcmludGYoImFmdGVyIDogJXNcbiIsIGxldHRlcnMpOwoJcmV0dXJuIDA7Cn0=