Comparar Char em C
- Comparação de caracteres em C Utilizando os Operadores de Comparação
-
Comparação de caracteres em C Utilizando
strcmp()
Função em C
![Comparar Char em C](/img/C/feature-image---compare-char-in-c.webp)
Este tutorial introduz como comparar char em C. Uma variável char é um valor integral de 8 bits, de 0 a 255. Aqui, 0
representa o carácter C-nulo, e 255 representa um símbolo vazio.
Comparação de caracteres em C Utilizando os Operadores de Comparação
Uma variável de caracteres tem o seu próprio valor ASCII. Assim, os caracteres são comparados de acordo com os valores ASCII. O programa completo é o que se segue:
#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.
Comparação de caracteres em C Utilizando strcmp()
Função em C
A função strcmp()
é definida no ficheiro de cabeçalho string
e utilizada para comparar duas strings por caracteres.
Se os primeiros caracteres das duas strings forem iguais, o próximo caractere das duas strings será comparado. Continua até que os caracteres correspondentes de ambas as strings sejam diferentes ou seja alcançado um carácter nulo '\0'
.
A sintaxe da função strcmp()
é a que se segue.
int strcmp(const char* firstStringValue, const char* secondStringValue);
- Se duas strings forem iguais ou idênticas, retorna
0
. - Se o valor ASCII do primeiro carácter inigualável for maior que o segundo, retorna um valor inteiro positivo
- Se o valor ASCII do primeiro carácter inigualável for inferior ao do segundo, devolve um valor inteiro negativo.
O programa completo para comparar duas strings é o que se segue:
#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;
}
Resultado:
strcmp(firstString, secondString) = 0 strcmp(firstString, thirdString) = 1