Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Vergleich Zweier Strings

Empfohlene Antworten

Hallo,

ich schreibe gerade ein Programm das Aus einer Datei eine Tabelle einliest. Danach soll die Tabelle in Richtiger reihenfolge sortiert werden. Das funktioniert auch alles bestens.

Ich habe da eine Funktion die 2 Strings mit einander Vergleicht und genau da liegt mein Problem.

int Vergleich(const void *s1, const void *s2)

{

    return (strcmp(*(char **)s1, *(char **)s2));

}

Mir wurde gesagt das das nur so funktioniert. Allerdings verstehe ich nicht wieso ich so viele Zeiger brauche.

Vllt kann es mir ja jemand erklären. Wäre lieb.

Liebe Grüße

Mir wurde gesagt das das nur so funktioniert. Allerdings verstehe ich nicht wieso ich so viele Zeiger brauche.
Ist das eine Vergleichsfunktion für qsort?

Wenn du ein Array mit qsort sortierst, wird die Vergleichsfunktion mit den Adressen jeweils zweier Arrayelemente aufgerufen. Wenn du also ein Array von char* hast, bekommt die Vergleichsfunkion char**. Da es in C keine andere Möglichkeit gibt, werden diese Adressen in dem "generischen" Typ void* übergeben.

Hinter diesen void* stecken also eigentlich Zeiger auf Strings (char**).

Die kannst du aber nicht mit strcmp vergleichen, deswegen musst du sie vorher einmal derefenzieren, und das macht der Stern ganz vorn.

Ja genau das ist eine vergleichsfunktion für qsort.

ahh ok. Danke nun habe ich es verstanden.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.