Baixe em PDF Baixe 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. 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. 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. 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. 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. 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. 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 wikiHow

Esta página foi acessada 97 440 vezes.

Este artigo foi útil?

Publicidade