C-Kurs/StringArraySortieren/Musterlösung
< C-Kurs | StringArraySortieren
Version vom 24. September 2009, 08:56 Uhr von 130.149.17.40 (Diskussion) (Die Seite wurde neu angelegt: „ #include <string.h> #include <stdlib.h> #include <stdio.h> int cmp_lex(void *a, void *b) { return strcmp(*(char **)a,*(char **)b);} int cmp_std(void *a,...“)
#include <string.h> #include <stdlib.h> #include <stdio.h> int cmp_lex(void *a, void *b) { return strcmp(*(char **)a,*(char **)b);} int cmp_std(void *a, void *b) {int len_diff=strlen(*(char **)a)-strlen(*(char **)b); if(len_diff) return len_diff; else return strcmp(*(char **)a,*(char **)b);} int main(int argc,char **argv) { int i; if(argc < 2) { printf("Program sortiert Argumente der Komandozeile\n"); printf("Usage: %s arg1 arg2 ...\n",argv[0]); return 0;} qsort(argv+1,argc-1,sizeof(char *),&cmp_lex); printf("Argumente sortiert nach lex. Ordnung\n"); for(i=1;i<argc;i++) printf("%s\n",argv[i]); printf("Argumente sortiert nach Standart- Ordnung\n"); qsort(argv+1,argc-1,sizeof(char *),&cmp_std); for(i=1;i<argc;i++) printf("%s\n",argv[i]); }