Como Comparar Duas Strings na Linguagem C

Baixe em PDFBaixe em PDF

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. How.com.vn Português: Step 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. How.com.vn Português: Step 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. How.com.vn Português: Step 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. How.com.vn Português: Step 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]
    #include <stdio.h>#include <string.h>int main (){  char *str1 = "melancia";  char *str2 = "laranja";  int ret;}
  5. How.com.vn Português: Step 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. How.com.vn Português: Step 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);}
    Publicidade

Avisos

  • 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.
Publicidade

Sobre este guia How.com.vn

O How.com.vn é uma "wiki"; ou seja, muitos de nossos artigos são escritos em parceria com várias pessoas. Para criar este artigo, 20 pessoas, algumas anônimas, editaram e melhoraram o texto desde sua criação. Este artigo foi visualizado 96 613 vezes.
Categorias: Programação
Esta página foi acessada 96 613 vezes.

Este artigo foi útil?

⚠️ Disclaimer:

Content from Wiki How Português language website. Text is available under the Creative Commons Attribution-Share Alike License; additional terms may apply.
Wiki How does not encourage the violation of any laws, and cannot be responsible for any violations of such laws, should you link to this domain, or use, reproduce, or republish the information contained herein.

Notices:
  • - A few of these subjects are frequently censored by educational, governmental, corporate, parental and other filtering schemes.
  • - Some articles may contain names, images, artworks or descriptions of events that some cultures restrict access to
  • - Please note: Wiki How does not give you opinion about the law, or advice about medical. If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.
  • - Readers should not judge the importance of topics based on their coverage on Wiki How, nor think a topic is important just because it is the subject of a Wiki article.

Publicidade