PDF download Descargar el PDF PDF download Descargar el PDF

Comparar el largo de una cadena es una función muy común en la programación en C, ya que te permite ver qué cadena contiene más caracteres. Esto es muy útil al momento de organizar información. Comparar cadenas requiere una función especial; no utiliza != o == .

  1. Ambas funciones se incluyen en la biblioteca <string.h> .
    • strcmp() : esta función compara ambas cadenas y regresa la diferencia comparativa en el número de caracteres.
    • strncmp() : esta es la misma que strcmp() , excepto que compara los primeros caracteres n . Se considera más segura ya que evita que aparezca un error debido al desbordamiento.
  2. Necesitas las bibliotecas <stdio.h> y <string.h> , así como cualquier otra necesaria para tu programa en específico.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
    
  3. int . Esta es la forma más sencilla para aprender esta función, ya que el valor de retorno será un íntegro que compara el largo de ambas cadenas.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     } 
    
  4. Para este ejemplo, se compararán dos cadenas char predefinidas. También quieres definir el valor de retorno como un íntegro. [1]
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     char 
     * 
     str1 
     = 
     "apple" 
     ; 
     char 
     * 
     str2 
     = 
     "orange" 
     ; 
     int 
     ret 
     ; 
     } 
    
  5. Ahora que ya definiste ambas cadenas, puedes añadir una función de comparación. Usarás strncmp() , así que necesitas asegurarte de establecer el número de caracteres que vas a medir en la función.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     char 
     * 
     str1 
     = 
     "apple" 
     ; 
     char 
     * 
     str2 
     = 
     "orange" 
     ; 
     int 
     ret 
     ; 
     ret 
     = 
     strncmp 
     ( 
     str1 
     , 
     str2 
     , 
     6 
     ); 
     /*Esto comparará las dos cadenas 
     hasta 6 caracteres de largo */ 
     } 
    
  6. If...Else para realizar una comparación. Ahora que tienes la función en su lugar, utiliza la declaración If...Else para mostrar qué cadena es más larga. strncmp() mostrará 0 si las cadenas tienen el mismo largo, un número positivo si la cadena “str1” es más larga y un número negativo si la cadena “str2” es más larga.
     #include 
     <stdio.h> 
      
     #include 
     <string.h> 
      
     int 
     main 
     () 
     { 
     char 
     * 
     str1 
     = 
     "apple" 
     ; 
     char 
     * 
     str2 
     = 
     "orange" 
     ; 
     int 
     ret 
     ; 
     ret 
     = 
     strncmp 
     ( 
     str1 
     , 
     str2 
     , 
     6 
     ); 
     if 
     ( 
     ret 
     > 
     0 
     ) 
     { 
     printf 
     ( 
     "str1 es más larga" 
     ); 
     } 
     else 
     if 
     ( 
     ret 
     < 
     0 
     ) 
     { 
     printf 
     ( 
     "str2 es más larga" 
     ); 
     } 
     else 
     { 
     printf 
     ( 
     "Las cadenas son iguales" 
     ); 
     } 
     return 
     ( 
     0 
     ); 
     } 
    
    Anuncio

Advertencias

  • Recuerda que el valor de retorno es 0 si las cadenas son iguales. Esto puede ser confuso ya que 0 también es el valor de FALSE.
Anuncio

Acerca de este wikiHow

Esta página ha recibido 141 694 visitas.

¿Te ayudó este artículo?

Anuncio