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]);
}