Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

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,...“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
#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]);
}