Cadena de casos Insensible Compare en C ++

Cadena de casos Insensible Compare en C ++
La comparación ha sido un concepto muy conocido y más utilizado en muchos campos. Cuando se trata de lenguajes de programación, solíamos comparar números la mayor parte del tiempo. Pero, ese no es el caso en todos los lenguajes de programación. Algunos de los lenguajes de programación como C ++ también nos brindan la oportunidad de comparar los valores de tipo de cadena. Esto se puede hacer ignorando la sensibilidad de los casos de esas cadenas utilizando algunos métodos incorporados. Por lo tanto, dentro de nuestro artículo de hoy, discutiremos esos métodos para hacer una comparación insensible de un caso de cadena en C++. Entonces, comencemos abriendo el Ubuntu 20.04 Consola terminal a través de "Ctrl+Alt+T".

Ejemplo 01: Uso del método STRCASECMP

Aquí hemos comenzado nuestro primer ejemplo creando un archivo que debe contener la extensión de C ++. La consulta táctil se ha utilizado para este propósito específico. Después de eso, un usuario necesita abrir el archivo recién creado para agregarle algún código. Un usuario puede utilizar cualquier editor incorporado de Ubuntu 20.04 como Vim, Text o Nano Editor. Entonces, hemos estado utilizando el editor de nano aquí según nuestra facilidad y edición rápida. Entonces, la palabra clave "nano" se usa aquí para abrir el "caso.Archivo CC "en el editor nano. Su archivo se abrirá en el editor vacío.

Hemos comenzado el código C ++ con algunos archivos de encabezado únicos y necesarios. Estos archivos de encabezado se incluyen utilizando la palabra clave "incluir" con el signo hash. Los archivos del encabezado incluyen el encabezado de transmisión "Input-Output", el encabezado "String" y el encabezado "CString" para utilizar el método StrcasecMp () en el código. El espacio de nombres estándar es esencial para usar aún más las cláusulas de Cout y Cin en el código. El método main () ha estado en progreso con la inicialización de dos variables de tipo de cadena S1 y S1, con algunos valores de cadena en él. Puede ver que ambas cuerdas obtuvieron casi los mismos valores con un pequeño caso de insensibilidad. La instrucción "IF" se usa aquí para comparar dos variables de cadena S1 y S2.

La función "strcasecmp ()" se ha utilizado en la instrucción "si" y toma ambas variables de cadena S1 y S2 para ser comparadas. Esta función ignorará su caso y verificará si ambas cadenas coinciden o no utilizan un solo byte a la vez a través del método "c_str ()". Si el byte de S1 coincide con el mismo byte de lugar de String S2, volverá 0. En el último, si todos los resultados devueltos es igual a 0, muestra que la cadena S1 es similar a S2, ignorando su caso. Por lo tanto, la declaración "IF" ejecutará la primera declaración de "cout" que muestra que ambas cuerdas coinciden. De lo contrario, la otra parte de la declaración "if" ejecutará y mostrará que las cadenas no coinciden. La cláusula de retorno simplemente finalizará el método main () aquí. Nuestro programa se completa aquí. Vamos a guardarlo rápidamente con el atajo "Ctrl+S" y renunciar con el "Ctrl+X". Este es un paso necesario antes de ir a la fase de compilación y ejecución.

Ahora que el archivo se ha guardado y volvemos a la terminal, es hora de compilarlo rápidamente. Para la compilación de cualquier archivo C ++ en Ubuntu 20.04, necesitas un compilador "G ++". Si no tiene uno, intente instalarlo con el paquete "Apt". De lo contrario, su código no dará como resultado la forma en que debería. Entonces, compilamos el "caso.CC "Archivo con el compilador" G ++ ", que fue exitoso. Después de eso, el último paso fue la ejecución de este archivo compilado. Esto se ha hecho con la ayuda de un "./a.instrucción fuera ". Recibimos el mensaje "Cadenas emparejadas ..." ya que las cadenas S1 y S2 son iguales en comparación pero diferentes en su caso.

Ejemplo 02: usando el método StrnCasecMP

Tomemos otro ejemplo similar de comparar dos cadenas insensibles++. Esta vez, utilizaremos el método "strncasecmp ()" en lugar de la función similar "strcasecmp ()". Ambos funcionan de manera bastante similar, pero el método "strncasecmp ()" funciona de manera un poco diferente. Esta función toma 3 argumentos, mientras que el método "strcasecmp ()" toma 2 como lo hicimos en el primer ejemplo. El código es similar al primer código de ejemplo con un cambio menor en dos posiciones. El primer cambio se ha realizado en el valor de la segunda cuerda S2, donde acabamos de cambiar la posición de un contenido de cadena según nuestro deseo. El segundo cambio se ha realizado en la declaración "IF" donde hemos agregado el tercer parámetro en el método de función "strncasecmp ()". Este parámetro toma un valor entero para especificar el número de caracteres de ambas cadenas a igualar o comparar, i.mi., Primero 5. Esto significa que solo se compararán los primeros 5 caracteres de ambas cuerdas, y el resultado se generará de acuerdo con eso.

Si la comparación tuvo éxito y ambas cuerdas obtuvieron los mismos personajes ignorando su sensibilidad de caso, devolverá 0 y la primera declaración de cout se ejecutará. De lo contrario, se ejecutará la próxima cláusula de cout. Guardemos con el acceso directo "Ctrl+S" y dejemos el archivo con "Ctrl+X" para volver al terminal. Ahora, es nuestro turno para la compilación.

Después de la compilación, el comando de ejecución muestra que las cadenas no coinciden porque los primeros 5 caracteres de ambas cadenas son diferentes.

Ejemplo 03: usando el método compare ()

Tengamos nuestro último, pero no, el método menor para comparar dos cadenas insensibles en cajas en C++. El código se ha iniciado con los archivos de encabezado, yo.mi., iostream y algoritmo. El IOSTream se usa para la secuencia de entrada-salida, pero el encabezado "Algoritmo" se utiliza para usar el método compare () y transform () en el código correctamente. Después de los encabezados, el "espacio de nombres" estándar se utiliza según sea necesario para el uso de las cláusulas de "COUT" y "CIN" para mostrar y obtener la entrada. Luego, hemos comenzado nuestra función principal () del tipo de retorno de entero. Está inicializando dos variables de tipo de cadena S1 y S2. Ambas cadenas contienen algunos valores de cadena con una sensibilidad de caso diferente, pero son similares en los caracteres.

El método "transform ()" se ha aplicado a ambas cadenas, S1 y S2, para convertirlas en la caja superior utilizando la función "ToUpper ()" de principio a fin. Después de convertir, el método "Compare ()" se ha utilizado en la instrucción "IF" para verificar si la cadena S1 es igual a S2. Si la comparación de cada byte de carácter en el mismo lugar de ambas cadenas regresa 0, significa que ambos son similares. Por lo tanto, ejecutará la primera declaración de "cout" diciendo que las cadenas coinciden. De lo contrario, la declaración de la parte de la parte de la otra se ejecutará, lo que demuestra que las cadenas no son las mismas. El código se completa aquí.

Después de la compilación y la ejecución del archivo de código, tenemos el mensaje "Strings coincidiendo ...". Ambas cuerdas se volvieron igual después de convertirse en la caja superior.

Conclusión:

Este artículo es lo mejor para explicar la cadena insensible del caso en comparación en el lenguaje C ++. Hemos utilizado las tres funciones diferentes en nuestros ejemplos para lograr esta funcionalidad i.mi.strcasecmp (), strncasecmp (), transform () y compare (). Todos los ejemplos se implementan en Ubuntu 20.04 sistema y son igualmente ejecutables en otras distribuciones de Linux. Esperamos que encuentre este artículo bastante útil mientras aprende C++.