PDF herunterladen PDF herunterladen

Der Vergleich der Länge einer Zeichenkette (String) ist eine häufige Funktion beim Programmieren in C, da du so sehen kannst, welche Zeichenkette mehr Zeichen enthält. Dies ist zum Sortieren von Daten sehr hilfreich. Der Vergleich von Strings erfordert eine spezielle Funktion; verwende nicht != oder == .

Vorgehensweise

PDF herunterladen
  1. Beide sind in der Bibliothek <string.h> enthalten.
    • strcmp() - Diese Funktion vergleicht zwei Strings und gibt den komparativen Unterschied in der Anzahl der Zeichen zurück.
    • strncmp() - Dies ist das Gleiche wie strcmp() , außer dass die ersten n Zeichen verglichen werden. Es wird als sicherer angesehen, da es durch einen Oberflow verursachte Abstürze verhindern hilft.
  2. Du wirst die Bibliotheken <stdio.h> und <string.h> wollen, und außerdem alle anderen, die du für dein jeweiliges Programm brauchst.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
    
  3. int Funktion. Dies ist die einfachste Möglichkeit, diese Funktion zu erlernen, da sie ein Integer zurückgibt, das die Länge der beiden Zeichenketten vergleicht.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     } 
    
  4. In diesem Beispiel vergleichen wir zwei vordefinierte char Strings. Du solltest außerdem den Rückgabewert als Integer definieren. [1]
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     char 
     * 
     str1 
     = 
     "Apfel" 
     ; 
     char 
     * 
     str2 
     = 
     "Orange" 
     ; 
     int 
     ret 
     ; 
     } 
    
  5. Jetzt, wo du deine beiden Strings definiert hast, kannst du die Funktion für den Vergleich einfügen. Wir werden strncmp() verwenden, daher müssen wir sicherstellen, dass die Anzahl der zu vergleichenden Zeichen in der Funktion angegeben wird.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     char 
     * 
     str1 
     = 
     "Apfel" 
     ; 
     char 
     * 
     str2 
     = 
     "Orange" 
     ; 
     int 
     ret 
     ; 
     ret 
     = 
     strncmp 
     ( 
     str1 
     , 
     str2 
     , 
     6 
     ); 
     /*Dies vergleicht die beiden Strings 
     bis zu einer Länge von sechs Zeichen */ 
     } 
    
  6. If...Else Statement, um den Vergleich durchzuführen. Jetzt, wo du die Funktion an Ort und Stelle hast, kannst du ein If...Else Statement nutzen, um anzuzeigen, welcher String länger ist. strncmp() gibt 0 zurück, wenn die Zeichenkette die gleiche Länge hat, eine positive Zahl, wenn str1 größer ist, und eine negative Zahl, wenn str2 größer ist.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     char 
     * 
     str1 
     = 
     "Apfel" 
     ; 
     char 
     * 
     str2 
     = 
     "Orange" 
     ; 
     int 
     ret 
     ; 
     ret 
     = 
     strncmp 
     ( 
     str1 
     , 
     str2 
     , 
     6 
     ); 
     if 
     ( 
     ret 
     > 
     0 
     ) 
     { 
     printf 
     ( 
     "str1 ist länger" 
     ); 
     } 
     else 
     if 
     ( 
     ret 
     < 
     0 
     ) 
     { 
     printf 
     ( 
     "str2 ist länger" 
     ); 
     } 
     else 
     { 
     printf 
     ( 
     "Die beiden Strings sind gleich lang" 
     ); 
     } 
     return 
     ( 
     0 
     ); 
     } 
    
    Werbeanzeige

Warnungen

  • Denke daran, dass der Rückgabewert 0 ist, wenn die Strings gleich lang sind. Dies könnte dich verwirren, da 0 auch der Wert für FALSE (falsch) ist.
Werbeanzeige

Über dieses wikiHow

Diese Seite wurde bisher 13.045 mal abgerufen.

War dieser Artikel hilfreich?

Werbeanzeige