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
-
Es gibt zwei Funktionen, mit denen du in C Strings vergleichen kannst. 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.
-
Beginne das Programm mit den notwendigen Bibliotheken. 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>
-
Beginne eine . 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 () { }
-
Definiere die beiden Strings, die du vergleichen willst. In diesem Beispiel vergleichen wir zwei vordefinierte char Strings. Du solltest außerdem den Rückgabewert als Integer definieren. [1] X Forschungsquelle
#include <stdio.h> #include <string.h> int main () { char * str1 = "Apfel" ; char * str2 = "Orange" ; int ret ; }
-
Füge die Funktion für den Vergleich hinzu. 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 */ }
-
Verwende ein . 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
Werbeanzeige