C-Kurs/StringArraySortieren/Musterlösung: Unterschied zwischen den Versionen
(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,...“) |
Mutax (Diskussion | Beiträge) K (hat „Ckurs2009/StringArraySortieren/Musterlösung“ nach „Ckurs/StringArraySortieren/Musterlösung“ verschoben: Aufgaben sind Kurs übergreifend nutzbar) |
(kein Unterschied)
|
Version vom 25. Juli 2010, 11:47 Uhr
#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]); }