Comparar la longitud de una cadena es una función común en la programación en C, ya que le permite ver qué cadena contiene más caracteres. Esto es muy útil para ordenar datos. Comparar cadenas requiere una función especial; no use! = o ==.
Pasos
Paso 1. Hay dos funciones que le permiten comparar cadenas en C
Ambas funciones están incluidas en la biblioteca.
- strcmp (): esta función compara dos cadenas y devuelve la diferencia comparativa en el número de caracteres.
- strncmp (): es lo mismo que strcmp (), excepto que compara los primeros n caracteres. Se considera más seguro, ya que ayuda a evitar que los bloqueos se desborden.
Paso 2. Inicie el programa con sus bibliotecas necesarias
Querrá las bibliotecas y, junto con cualquier otra que pueda necesitar para su programa específico.
#incluir #incluir
Paso 3. Inicie un
En t función.
Esta es la forma más fácil de aprender esta función, ya que devolverá un número entero que compara la longitud de las dos cadenas.
#include #include int main () {}
Paso 4. Defina las dos cadenas que desea comparar
Para este ejemplo, compararemos dos cadenas de caracteres predefinidas. También querrá definir el valor de retorno como un número entero.
#include #include int main () {char * str1 = "manzana"; char * str2 = "naranja"; int ret; }
Paso 5. Agregue la función de comparación
Ahora que tiene sus dos cadenas definidas, puede agregar la función de comparación. Vamos a usar strncmp (), por lo que debemos asegurarnos de que el número de caracteres a medir esté configurado en la función.
#include #include int main () {char * str1 = "manzana"; char * str2 = "naranja"; int ret; ret = strncmp (str1, str2, 6); / * Esto comparará las dos cadenas de hasta 6 caracteres de longitud * /}
Paso 6. Utilice un
Si … Else declaración para realizar la comparación.
Ahora que tiene la función en su lugar, puede usar una instrucción If … Else para mostrar qué cadena es más larga. strncmp () devolverá 0 si las cadenas tienen la misma longitud, un número positivo si str1 es mayor y un número negativo si str2 es mayor.
#include #include int main () {char * str1 = "manzana"; char * str2 = "naranja"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 es más largo"); } else if (ret <0) {printf ("str2 es más largo"); } else {printf ("Las dos cadenas son iguales"); } retorno (0); }