Wie man zwei Strings in der Programmiersprache C vergleicht

Autor: William Ramirez
Erstelldatum: 18 September 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Programmieren in C Tutorial #11 - String Initialisieren (Zeichenkette)
Video: Programmieren in C Tutorial #11 - String Initialisieren (Zeichenkette)

Inhalt

In C-Code ist es durchaus üblich, die Länge von Strings zu vergleichen, um herauszufinden, welcher String mehr Zeichen enthält. Dies ist nützlich, um Daten zu sortieren. Zum Vergleichen von Strings wird eine spezielle Funktion benötigt - nicht verwenden != oder ==.

Schritte

  1. 1 Die Programmiersprache C enthält zwei Funktionen, mit denen Sie Stringlängen vergleichen können. Beide Funktionen sind in der Bibliothek enthalten string.h>.
    • strcmp () - Diese Funktion vergleicht zwei Strings und gibt den Unterschied in der Anzahl der Zeichen zurück.
    • strncmp () - diese Funktion ist die gleiche wie strcmp () außer dass die erste n Figuren. Es gilt als sicherer, weil es Überlauffehler vermeidet.
  2. 2 Starten Sie das Programm mit den benötigten Bibliotheken. Sie benötigen Bibliotheken stdio.h> und string.h>sowie alle anderen Bibliotheken, die für Ihr spezifisches Programm erforderlich sind.

    #include stdio.h> #include string.h>

  3. 3 Funktion eingeben int. Es gibt eine ganze Zahl als Ergebnis des Vergleichs der Länge zweier Zeichenfolgen zurück.

    #include stdio.h> #include string.h> int main() {}

  4. 4 Identifizieren Sie die beiden Zeichenfolgen, die Sie vergleichen möchten. In unserem Beispiel vergleichen wir zwei Strings vom Typ verkohlen... Definieren Sie auch den Rückgabewert als Integer.

    #include stdio.h> #include string.h> int main() {char * str1 = "Apfel"; char * str2 = "orange"; int ret; }

  5. 5 Geben Sie eine Vergleichsfunktion ein. In unserem Beispiel verwenden wir die Funktion strncmp ()... Darin müssen Sie die Anzahl der gemessenen Zeichen einstellen.

    #include stdio.h> #include string.h> int main() {char * str1 = "Apfel"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); / * Vergleicht zwei Strings mit bis zu 8 Zeichen Länge * /}

  6. 6 Geben Sie eine bedingte Anweisung ein Ob... Anders. Es wird benötigt, um anzuzeigen, welche Zeile länger ist. Funktion strncmp () wird die Nummer zurückgeben 0wenn die Länge der Strings gleich ist, eine positive Zahl, wenn str1 länger ist, und eine negative Zahl, wenn str2 länger ist.

    #include stdio.h> #include string.h> int main() {char * str1 = "Apfel"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 ist länger"); } else if (ret 0) {printf ("str2 ist länger"); } else {printf ("Linienlängen sind gleich"); } zurück (0); }

Warnungen

  • Denken Sie daran, dass bei gleicher Länge der Strings der Wert 0 zurückgegeben wird.Dies kann verwirrend sein, da 0 auch FALSE ist.