Comparar Char en C
- Comparar char en C usando los operadores de comparación
-
Comparar Char en C usando la función
strcmp()
en C
Este tutorial introduce cómo comparar los caracteres en C. Una variable char es un valor integral de 8 bits, de 0 a 255. Aquí, 0
significa el carácter C-nulo, y 255 significa un símbolo vacío.
Comparar char en C usando los operadores de comparación
Una variable char tiene su propio valor ASCII. Así que los caracteres se comparan de acuerdo a los valores ASCII. El programa completo es el siguiente:
#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;
}
Resultado:
m is smaller than n.
Comparar Char en C usando la función strcmp()
en C
La función strcmp()
está definida en el archivo de cabecera string
y se utiliza para comparar dos cadenas carácter por carácter.
Si los primeros caracteres de ambas cadenas son iguales, se comparará el siguiente carácter de las dos cadenas. Continúa hasta que los caracteres correspondientes de ambas cadenas son diferentes o se alcanza un carácter nulo '\0'
.
La sintaxis de la función strcmp()
es la siguiente.
int strcmp(const char* firstStringValue, const char* secondStringValue);
- Si dos cadenas son iguales o idénticas, devuelve
0
. - Si el valor ASCII del primer carácter no coincidente es mayor que el segundo, devuelve un valor entero positivo
- Si el valor ASCII del primer carácter no coincidente es menor que el segundo, devuelve un valor entero negativo.
El programa completo para comparar dos cadenas es el siguiente:
#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;
}
La salida es:
strcmp(firstString, secondString) = 0 strcmp(firstString, thirdString) = 1