Como comparar duas strings na linguagem de programação C

Autor: William Ramirez
Data De Criação: 18 Setembro 2021
Data De Atualização: 1 Julho 2024
Anonim
Lista estática com vetores de estrutura.
Vídeo: Lista estática com vetores de estrutura.

Contente

É bastante comum no código C comparar comprimentos de string para descobrir qual string contém mais caracteres. Isso é útil para classificar dados. Uma função especial é necessária para comparar strings - não use != ou ==.

Passos

  1. 1 A linguagem de programação C inclui duas funções que você pode usar para comparar comprimentos de string. Ambas as funções estão incluídas na biblioteca string.h>.
    • strcmp () - esta função compara duas strings e retorna a diferença no número de caracteres.
    • strncmp () - esta função é a mesma que strcmp () exceto que o primeiro n personagens. É considerado mais seguro porque evita falhas de estouro.
  2. 2 Inicie o programa com as bibliotecas necessárias. Você vai precisar de bibliotecas stdio.h> e string.h>bem como quaisquer outras bibliotecas necessárias para o seu programa específico.

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

  3. 3 Insira a função int. Ele retorna um número inteiro como resultado da comparação do comprimento de duas strings.

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

  4. 4 Identifique as duas strings que deseja comparar. Em nosso exemplo, vamos comparar duas strings do tipo Caracteres... Defina também o valor de retorno como um número inteiro.

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

  5. 5 Insira uma função de comparação. Em nosso exemplo, usaremos a função strncmp ()... Nele você precisa definir o número de caracteres medidos.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "laranja"; int ret; ret = strncmp (str1, str2, 8); / * Compara duas strings com até 8 caracteres de comprimento * /}

  6. 6 Insira uma declaração condicional Se... Outro. É necessário mostrar qual linha é mais longa. Função strncmp () irá devolver o número 0se os comprimentos das strings forem iguais, um número positivo se str1 for mais longo e um número negativo se str2 for mais longo.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "laranja"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 é mais longo"); } else if (ret 0) {printf ("str2 is mais"); } else {printf ("Os comprimentos das linhas são iguais"); } return (0); }

Avisos

  • Lembre-se de que, se os comprimentos das strings forem iguais, será retornado o valor 0. Isso pode ser confuso porque 0 também é FALSO.