char array sortieren



  • hi,

    ich habe ein char array words[8][30] in dem 8 wörter gespeichert sind. diese wörter will ich alphabetisch sortieren. wenn also ein wort habe ist, soll danach abeh im array stehen. hat jemand eine idee wie ich das am einfachsten mache?

    ich habs mit qsort probiert, aber irgendwie hab ich die vergleichsfunktion nicht so ganz hinbekommen.

    gruß,

    randolf



  • Z.B. so:

    int char_cmp(void const *ref1, void const *ref2) {
      char c1 = *((char*) ref1),
           c2 = *((char*) ref2);
    
      if(c1 > c2) return 1;
      if(c1 < c2) return -1;
      return 0;
    }
    
    /* ... */
    
    for(i = 0; i < 8; ++i) {
      qsort(words[i], strlen(words[i]), sizeof(char), char_cmp);
    }
    


  • Wenn man strings (char-Arrays) vergleicht, sollte man strcmp() verwenden und wenn man weiß, was es zurückliefert in welchen Fall, dann hat man es noch einfacher ;).


Anmelden zum Antworten