Como fazer comparar de caracteres em c

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

Comparar o tamanho de strings é uma função comum na programação da linguagem C, pois ela permite verificar qual delas contém mais caracteres. Tal recurso é muito útil para ordenar dados. Comparar strings requer uma função especial; não use != ou ==.

  1. 1

    Na linguagem C, existem duas funções que permitem comparar strings. Ambas as funções fazem parte da biblioteca <string.h>.

    • strcmp() : Essa função compara duas strings e retorna a diferença no número de caracteres.
    • strncmp() : Semelhante à função strcmp(), exceto que esta compara os n primeiros caracteres das strings. Ela é considerada uma função mais segura, pois ajuda a evitar que ocorra overflow.

  2. 2

    Inicie o programa com as bibliotecas necessárias. Você vai precisar das bibliotecas <stdio.h> e <string.h>, juntamente com todas as outras bibliotecas necessárias para o programa.

    #include <stdio.h> #include <string.h>

  3. 3

    Inicie com a função .int. Esta é a forma mais fácil de aprender a função, já que ela retornará um valor inteiro que compara o tamanho das duas strings.

    #include <stdio.h> #include <string.h> int main () { }

  4. 4

    Defina as duas strings que você deseja comparar. Para este exemplo, iremos comparar duas strings char. Defina também o valor retornado como um inteiro.[1] X Fonte de pesquisa Ir à fonte

    #include <stdio.h> #include <string.h> int main () { char *str1 = "melancia"; char *str2 = "laranja"; int ret; }

  5. 5

    Inclua a função escolhida. Agora que você tem as duas strings definidas, adicione a função para compará-las. Neste exemplo, usaremos strncmp(), portanto devemos definir na função o número de caracteres que serão comparados.

    #include <stdio.h> #include <string.h> int main () { char *str1 = "melancia"; char *str2 = "laranja"; int ret; ret = strncmp(str1, str2, 6); /*Aqui, a função irá comparar os 6 primeiros caracteres */ }

  6. 6

    Use a estrutura .if...else para fazer a comparação. Depois de incluir a função no seu código, use a estrutura if...else para exibir qual das duas strings é maior. A função strncmp() retornará o valor 0 se as strings tiverem o mesmo comprimento, um número positivo se str1 for maior e um número negativo se str2 for maior.

    #include <stdio.h> #include <string.h> int main () { char *str1 = "melancia"; char *str2 = "laranja"; int ret; ret = strncmp(str1, str2, 6); if(ret > 0) { printf("str1 é maior"); } else if(ret < 0) { printf("str2 é maior"); } else { printf("As duas palavras são iguais"); } return(0); }

  • Lembre-se de que, se as strings forem iguais, o valor retornado será 0. Isso pode confundir, já que esse valor numérico também representa o valor lógico FALSE.

Preciso descobrir se cada elemento de uma lista encadeada é ou não uma vogal.

Como posso corrigir meu código?

int BuscaNv(LISTA* resp){ NO* atual = resp->inicio; while(atual){ if(atual->letra == 'a' || 'e' || 'i' || 'o' || 'u'){ printf("É vogal\n"); atual = atual->prox; } else{ printf("Não é vogal\n"); atual = atual->prox; } } return 0; }

Typedefs:

typedef struct estr { char letra; struct estr *prox; } NO; typedef struct { NO *inicio; } LISTA;

4