logo

C strcmp()

In der C-Sprache enthält die Header-Datei die Standard-String-Bibliothek, die einige nützliche und häufig verwendete Funktionen zur String-Manipulation enthält. In diesem Artikel erfahren Sie, wie Sie mithilfe der Funktion Zeichenfolgen in C vergleichen strcmp().

Was ist strcmp() in C?

C strcmp() ist eine integrierte Bibliotheksfunktion, die zum String-Vergleich verwendet wird. Diese Funktion benötigt zwei Zeichenfolgen (Array von Zeichen) als Argumente: vergleicht diese beiden Zeichenfolgen lexikografisch und gibt dann als Ergebnis 0,1 oder -1 zurück. Es ist im Inneren definiert Header-Datei mit ihrem Prototyp wie folgt:



Syntax von strcmp() in C

strcmp( first_str , second_str );>

Parameter von strcmp() in C

Diese Funktion benötigt zwei Zeichenfolgen (Array von Zeichen) als Parameter:

    first_str: Die erste Zeichenfolge wird als Zeiger auf das konstante Zeichen (d. h. die unveränderliche Zeichenfolge) verwendet. second_str: Zweiter String wird als Zeiger auf ein konstantes Zeichen verwendet.

Notiz: Der Grund dafür, dass Argumente als const char * und nicht nur als char * verwendet werden, liegt darin, dass die Funktion die Zeichenfolge nicht ändern und sie auch nicht für konstante Zeichenfolgen anwendbar machen konnte.

Rückgabewert von strcmp() in C

Die Funktion strcmp() gibt nach dem Vergleich der beiden Zeichenfolgen drei verschiedene Werte zurück, die wie folgt lauten:



1. Null ( 0 )

Ein Wert gleich Null, wenn festgestellt wird, dass beide Zeichenfolgen identisch sind. Das ist, Alle Zeichen in beiden Zeichenfolgen sind gleich.

2. Größer als Null (> 0)

Ein Wert größer als Null wird zurückgegeben, wenn der Das erste nicht übereinstimmende Zeichen in first_str hat einen größeren ASCII-Wert als das entsprechende Zeichen in second_str oder wir können auch sagen, dass Null zurückgegeben wird, wenn das Zeichen in first_str lexikographisch nach dem Zeichen von second_str steht.

3. Kleiner als Null (<0)

Ein Wert kleiner als Null wird zurückgegeben, wenn der Das erste nicht übereinstimmende Zeichen in first_str hat einen niedrigeren ASCII-Wert als das entsprechende Zeichen in second_str . Wir können auch sagen, dass Null zurückgegeben wird, wenn das Zeichen in first_str lexikographisch vor dem Zeichen von second_str liegt.



Weitere Informationen zu ASCII-Werten finden Sie in diesem Artikel – ASCII-Tabelle

So verwenden Sie die Funktion strcmp() in C

Das folgende Beispiel zeigt, wie die Funktion strcmp() in C verwendet wird:

C




// C Program to Demonstrate the use of strcmp() function> #include> #include> int> main()> {> >// declaring two same string> >char>* first_str =>'Geeks'>;> >char>* second_str =>'Geeks'>;> >// printing the strings> >printf>(>'First String: %s '>, first_str);> >printf>(>'Second String: %s '>, second_str);> >// printing the return value of the strcmp()> >printf>(>'Return value of strcmp(): %d'>,> >strcmp>(first_str, second_str));> >return> 0;> }>

Java-Listen
>

>

Ausgabe

First String: Geeks Second String: Geeks Return value of strcmp(): 0>

Wie funktioniert strcmp() in C?

Die C-Funktion strcmp() vergleicht die zwei Zeichenfolgen lexikographisch . Das bedeutet, dass der ASCII-Wert jedes Zeichens verglichen wird, bis der nicht übereinstimmende Wert oder das NULL-Zeichen gefunden wird. Die Funktionsweise der C-Funktion strcmp() kann wie folgt beschrieben werden:

1. Es beginnt mit dem Vergleich der ASCII-Werte der ersten Zeichen beider Zeichenfolgen.

2. Wenn die ersten Zeichen in beiden Zeichenfolgen gleich sind, prüft diese Funktion das zweite Zeichen. Wenn sie ebenfalls gleich sind, prüft sie das dritte usw., bis das erste nicht übereinstimmende Zeichen oder das NULL-Zeichen gefunden wird.

3. Wenn ein NULL-Zeichen wurde gefunden , die Funktion gibt Null zurück da beide Saiten gleich sein werden.

strcmp mit Null als Rückgabewert

4. Wenn ein nicht passendes Zeichen gefunden wird,

  • Wenn der ASCII-Wert des Zeichens der ersten Zeichenfolge größer ist als der der zweiten Zeichenfolge, dann ist die positive Differenz ( > 0 ) zwischen ihren ASCII-Werten wird zurückgegeben.
strcmp mit positivem Rückgabewert
  • Wenn der ASCII-Wert des Zeichens der ersten Zeichenfolge kleiner ist als der der zweiten Zeichenfolge, dann wird die negative Differenz ( < 0 ) zwischen ihren ASCII-Werten wird zurückgegeben.
strcmp mit negativem Rückgabewert

Alle diese drei Fälle werden in den folgenden Beispielen demonstriert.

Beispiele für strcmp() in C

Beispiel 1. Verhalten von strcmp() für identische Zeichenfolgen

Dieses Programm veranschaulicht das Verhalten der Funktion strcmp() für identische Zeichenfolgen.

C


str zu int



// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> > >char> first_str[] =>'g f g'>;> >char> second_str[] =>'g f g'>;> > >// Using strcmp()> >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>' Value returned by strcmp() is: %d'> , res);> >return> 0;> }>

>

>

Ausgabe

So ermitteln Sie die Anzeigegröße
Strings are equal Value returned by strcmp() is: 0>

Beispiel 2. strcmp()-Verhalten für die lexikographisch größere erste Zeichenfolge

Das folgende Beispiel zeigt das Verhalten der Funktion strcmp() für die lexikographisch größere erste Zeichenfolge.

C




// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> >// z has greater ASCII value than g> >char> first_str[] =>'zfz'>;> >char> second_str[] =>'gfg'>;> > >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>' Value of result: %d'> , res);> > >return> 0;> }>

>

>

Ausgabe

Strings are unequal Value of result: 19>

Beispiel 3. strcmp()-Verhalten für die lexikographisch kleinere erste Zeichenfolge.

Das folgende Beispiel zeigt das Verhalten der Funktion strcmp() für die lexikografisch kleinere erste Zeichenfolge.

C




// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> >// b has less ASCII value than g> >char> first_str[] =>'bfb'>;> >char> second_str[] =>'gfg'>;> > >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>' Value returned by strcmp() is: %d'> , res);> > > >return> 0;> }>

>

>

Ausgabe

Strings are unequal Value returned by strcmp() is: -5>

Abschluss

In diesem Artikel haben wir das besprochen C-Standardbibliotheksfunktion strcmp() Dies wird verwendet, um zwei Zeichenfolgen lexikografisch zu vergleichen. Die Standardbibliothek enthält einige nützliche und häufig verwendete Funktionen, die die Programmierung erleichtern, da sie dazu beitragen, dass häufig verwendete Funktionen bei Bedarf nicht immer wieder neu geschrieben werden müssen.

Datum zum String

FAQs zu strcmp() in C

1. Wie können wir zwei Strings in C vergleichen?

Jahre: Wir können die Funktion strcmp() verwenden, die in der Header-Datei definiert ist, um zwei Zeichenfolgen (Array von Zeichen) lexikographisch zu vergleichen.

2. Was ist der Funktionsprototyp von strcmp() in C?

Jahre: Der Funktionsprototyp der Funktion strcmp() lautet wie folgt:

int strcmp(const char* lhs , const char* rhs );>

3. Wann gibt die Funktion strcmp() Null zurück?

Jahre: Die Funktion strcmp() gibt Null zurück, wenn die beiden Zeichenfolgen identisch sind.

4. Was bedeutet der positive Rückgabewert der Funktion strcmp()?

Jahre: Die Funktion strcmp() gibt einen positiven Wert zurück, wenn die erste Zeichenfolge lexikographisch größer als die zweite Zeichenfolge ist.

5. Was bedeutet der negative Rückgabewert der Funktion strcmp()?

Jahre: Der von der Funktion strcmp() zurückgegebene negative Wert bedeutet, dass die erste Zeichenfolge lexikographisch kleiner ist als die zweite Zeichenfolge.

6. Wie vergleicht die Funktion strcmp() zwei Strings in C?

Jahre: Die Funktion strcmp() vergleicht die ASCII-Werte jedes Zeichens der beiden Zeichenfolgen, bis das nicht übereinstimmende Zeichen oder NULL-Zeichen gefunden wird.

7. Kann die Funktion strcmp() zum Vergleichen von Nicht-String-Datentypen in C verwendet werden?

Jahre: Nein, die Funktion strcmp() kann keine Nicht-String-Datentypen in C vergleichen. Sie kann nur den veränderlichen oder unveränderlichen String-Datentyp vergleichen, der mit einem NULL-Zeichen endet.

In Verbindung stehende Artikel: