Comparar Char em C

  1. Comparação de caracteres em C Utilizando os Operadores de Comparação
  2. Comparação de caracteres em C Utilizando strcmp() Função em C

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 smaller 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

Artigo relacionado - C Char

  • Obter um Substring em C
  • Converter Integer em Char em C