Zeichenfolgen können entweder mit der Zeichenfolgenfunktion oder ohne Verwendung der Zeichenfolgenfunktion verglichen werden. Zuerst schauen wir uns an, wie wir die Strings mit Hilfe der String-Funktion vergleichen können, d. h. strcmp(), was in a definiert ist string.h Header-Datei.
String-Vergleich mithilfe der String-Funktion
Die String-Funktion, die in a vordefiniert ist string.h Header-Datei ist eine strcmp() Funktion. Die Funktion strcmp() berücksichtigt zwei Zeichenfolgen als Parameter und diese Funktion gibt einen ganzzahligen Wert zurück, wobei der ganzzahlige Wert sein kann null , positiv oder Negativ .
Die Syntax der Funktion strcmp() ist unten angegeben:
int strcmp (const char* str1, const char* str2);
In der obigen Syntax werden zwei Parameter als Strings übergeben, d. h. str1 Und str2 , und der Rückgabetyp ist int bedeutet, dass strcmp() einen ganzzahligen Wert zurückgibt.
Die Funktion strcmp() vergleicht die Zeichen beider Zeichenfolgen. Wenn das erste Zeichen beider Zeichenfolgen gleich ist, wird dieser Vergleichsprozess fortgesetzt, bis alle Zeichen verglichen sind oder der Zeiger auf das Nullzeichen „ “ zeigt.
Mögliche Rückgabewerte der Funktion strcmp()
Rückgabewert | Beschreibung |
---|---|
0 | Wenn beide Saiten gleich sind. |
<0< td> | Wenn der ASCII-Wert eines Zeichens der ersten Zeichenfolge kleiner als der ASCII-Wert eines Zeichens der zweiten Zeichenfolge ist, gibt die Funktion einen negativen Wert zurück. | 0<>
>0 | Wenn der ASCII-Wert eines Zeichens der ersten Zeichenfolge größer ist als der ASCII-Wert eines Zeichens der zweiten Zeichenfolge, gibt die Funktion einen positiven Wert zurück. |
Lassen Sie es uns anhand eines Beispiels verstehen.
#include #include int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array int value; // declaration of integer variable printf('Enter the first string : '); scanf('%s',str1); printf('Enter the second string : '); scanf('%s',str2); // comparing both the strings using strcmp() function value=strcmp(str1,str2); if(value==0) printf('strings are same'); else printf('strings are not same'); return 0; }
Analyse des obigen Programms
- Wir haben zwei Arrays vom Typ char deklariert, nämlich str1 und str2. Wir nehmen die Benutzereingaben als Strings.
- Wir vergleichen die Zeichenfolgen mit dem strcmp() Funktion, d. h. strcmp(str1,str2). Diese Funktion vergleicht die beiden Zeichenfolgen str1 und str2. Wenn die Funktion den Wert 0 zurückgibt, bedeutet dies, dass beide Zeichenfolgen gleich sind, andernfalls sind die Zeichenfolgen nicht gleich.
Ausgabe:
String-Vergleich ohne Verwendung der Funktion strcmp()
#include int compare(char[],char[]); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf('Enter the first string : '); scanf('%s',str1); printf('Enter the second string : '); scanf('%s',str2); int c= compare(str1,str2); // calling compare() function if(c==0) printf('strings are same'); else printf('strings are not same'); return 0; } // Comparing both the strings. int compare(char a[],char b[]) { int flag=0,i=0; // integer variables declaration while(a[i]!=' ' &&b[i]!=' ') // while loop { if(a[i]!=b[i]) { flag=1; break; } i++; } if(flag==0) return 0; else return 1; }
Analyse des obigen Programms
- Oben haben wir zwei Arrays vom Typ char deklariert und nehmen die Benutzereingaben als Zeichenfolgen.
- Wir haben eine Funktion „compare()“ definiert, die Benutzereingabezeichenfolgen als Parameter verwendet und beide Zeichenfolgen vergleicht. Wenn die Funktion 0 zurückgibt, bedeutet dies, dass beide Zeichenfolgen gleich sind, andernfalls sind beide Zeichenfolgen nicht gleich .
Ausgabe:
String-Vergleich mithilfe von Zeigern
#include int stringcompare(char*,char*); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf('Enter the first string : '); scanf('%s',str1); printf(' Enter the second string : '); scanf('%s',str2); int compare=stringcompare(str1,str2); // calling stringcompare() function. if(compare==0) printf('strings are equal'); else printf('strings are not equal'); return 0; } // Comparing both the strings using pointers int stringcompare(char *a,char *b) { int flag=0; while(*a!=' ' && *b!=' ') // while loop { if(*a!=*b) { flag=1; } a++; b++; } if(flag==0) return 0; else return 1; }
Analyse des obigen Programms
- Wir haben zwei Arrays vom Typ char str1 und str2 erstellt. Wir nehmen die Benutzereingaben als Strings.
- Wir haben eine stringcompare()-Funktion definiert, die zwei Zeiger vom Typ char als Parameter akzeptiert. Der Zeiger „a“ enthält die Adresse von str1 und der Zeiger „b“ enthält die Adresse von str2. Innerhalb der Funktion haben wir eine While-Schleife erstellt, die ausgeführt wird, bis der Zeiger a oder b kein Nullzeichen mehr erreicht.
Ausgabe: