Vergleiche Char in C
- Vergleichen von char in C mit Hilfe der Vergleichsoperatoren
-
Vergleichen von Char in C mit Hilfe der Funktion
strcmp()
in C
Dieses Tutorial stellt verschiedene Möglichkeiten vor, char-Variablen in C zu vergleichen. Eine char-Variable ist ein 8-Bit-Integralwert, von 0 bis 255. Dabei steht 0
für das C-Null-Zeichen, und 255 steht für ein leeres Symbol.
Vergleichen von char in C mit Hilfe der Vergleichsoperatoren
Eine char-Variable hat ihren eigenen ASCII-Wert. Die Zeichen werden also anhand der ASCII-Werte verglichen. Das komplette Programm sieht wie folgt aus:
#include <stdio.h>
int main(void) {
char firstCharValue = 'm';
char secondCharValue = 'n';
if (firstCharValue < secondCharValue)
printf("%c is smaller than %c.", firstCharValue, secondCharValue);
if (firstCharValue > secondCharValue)
printf("%c is greater than %c.", firstCharValue, secondCharValue);
if (firstCharValue == secondCharValue)
printf("%c is equal to %c.", firstCharValue, secondCharValue);
return 0;
}
Ausgabe:
m is smaller than n.
Vergleichen von Char in C mit Hilfe der Funktion strcmp()
in C
Die Funktion strcmp()
ist in der Header-Datei string
definiert und wird verwendet, um zwei Strings zeichenweise zu vergleichen.
Wenn die ersten Zeichen der beiden Zeichenketten gleich sind, wird das nächste Zeichen der beiden Zeichenketten verglichen. Es wird so lange fortgesetzt, bis die entsprechenden Zeichen der beiden Zeichenketten entweder unterschiedlich sind oder ein Null-Zeichen '\0'
erreicht wird.
Die Syntax für die Funktion strcmp()
lautet wie folgt.
int strcmp(const char* firstStringValue, const char* secondStringValue);
- Wenn zwei Zeichenketten gleich oder identisch sind, gibt sie
0
zurück. - Wenn der ASCII-Wert des ersten nicht übereinstimmenden Zeichens größer ist als der des zweiten, gibt sie einen positiven ganzzahligen Wert zurück
- Wenn der ASCII-Wert des ersten nicht übereinstimmenden Zeichens kleiner ist als der des zweiten, wird ein negativer Integer-Wert zurückgegeben.
Das vollständige Programm zum Vergleich zweier Zeichenketten sieht wie folgt aus:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char firstString = "b", secondString = "b", thirdString = "B";
int result;
result = strcmp(&firstString, &secondString);
printf("strcmp(firstString, secondString) = %d\n", result);
result = strcmp(&firstString, &thirdString);
printf("strcmp(firstString,thirdString) = %d\n", result);
return 0;
}
Die Ausgabe ist:
strcmp(firstString, secondString) = 0 strcmp(firstString, thirdString) = 1