Descargar el PDF
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 == .
Pasos
-
Existen dos funciones que te permiten comparar ambas cadenas en C. 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.
-
Abre el programa con las bibliotecas necesarias. 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>
-
Comienza una función . 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 () { }
-
Define las dos cadenas que quieres comparar. Para este ejemplo, se compararán dos cadenas char predefinidas. También quieres definir el valor de retorno como un íntegro. [1] X Fuente de investigación
#include <stdio.h> #include <string.h> int main () { char * str1 = "apple" ; char * str2 = "orange" ; int ret ; }
-
Añade la función de comparación. 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 */ }
-
Utiliza la declaración . 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 860 visitas.
Anuncio