Cómo comparar cadenas en C ++

How Compare String C



Comparar cadenas es una tarea muy común para cualquier lenguaje de programación. Se utiliza principalmente para validar los datos, como verificar el nombre de usuario y la contraseña de la información de inicio de sesión. La comparación de cadenas se puede realizar utilizando un operador de comparación o utilizando funciones integradas. Dos funciones de comparación de cadenas utilizadas en C ++ son, strcmp () y comparar() . los strcmp () es una función de biblioteca de C para comparar dos cadenas. La C ompare () es una función incorporada de C ++ para comparar dos cadenas. En este tutorial se explican las formas de comparar cadenas mediante operadores y funciones de comparación.

Requisito previo:

Antes de verificar los ejemplos de este tutorial, debe verificar que el compilador g ++ esté instalado o no en el sistema. Si está utilizando Visual Studio Code, instale las extensiones necesarias para compilar el código fuente de C ++ para crear el código ejecutable. Aquí, la aplicación Visual Studio Code se ha utilizado para compilar y ejecutar el código C ++.







Usando el operador de comparación para comparar cadenas:

La forma más común de comparar cadenas en C ++ es utilizando el operador de comparación. Estos son operadores iguales (==) y no iguales (! =). Cree un archivo C ++ con el siguiente código para comparar dos valores de cadena usando el operador de comparación. Según el código, se tomará una dirección URL del usuario y se comparará con otras cadenas utilizando un operador igual (==). Si el valor de entrada coincide con cualquier cadena de la condición 'si', se imprimirá el mensaje específico; de lo contrario, se mostrará el mensaje de la parte 'else'.



// Incluir la biblioteca necesaria

#incluir

usando el espacio de nombres estándar;

intmain() {
// Declarar una variable de cadena
string url_addr;
// Toma una dirección URL del usuario
costourl_addr;
// Compara el valor de entrada con otra cadena usando un operador equivalente
si(url_addr== 'google.com')
costo<<'Es un sitio web de motor de búsqueda'.<<endl;
elseif(url_addr== 'jooble.org')
costo<<'Es un sitio web de búsqueda de empleo'.<<endl;
elseif(url_addr== 'linuxhint.com')
costo<<'Es un sitio web de blogs'.<<endl;
demás
costo<<'No se agrega información para este sitio.'<<endl;

retorno0;
}

Producción:



Después de ejecutar el código, si el usuario escribió ' linuxhint.com 'Como entrada, se devolverá la tercera condición' si ' Cierto, y aparecerá la siguiente salida.





Usando la función compare () para comparar cadenas:

La función compare () compara dos cadenas y devuelve 0 o 1 o -1 según el resultado coincidente de la comparación. El significado de los valores devueltos se da a continuación.



  • La función devolverá 0 cuando ambas cadenas de comparación sean iguales.
  • La función devolverá 1 cuando la primera cadena sea mayor que la segunda cadena.
  • La función devolverá -1 cuando la primera cadena sea menor que la segunda cadena.

Sintaxis:

En tcadena1.comparar(cadena2)

Cree un archivo C ++ con el siguiente código para comparar dos valores de cadena con dos valores de entrada usando la función compare (). La autenticación de cualquier usuario se puede verificar comparando los valores enviados por los usuarios con los valores del usuario autenticado. Este proceso de autenticación se ha implementado en el siguiente código. La dirección de correo electrónico y la contraseña válidas se han almacenado aquí en dos variables de cadena. A continuación, estos valores se han comparado con la dirección de correo electrónico y la contraseña obtenida del usuario que usa comparar () función. La lógica Y Se ha utilizado el operador en el código para autenticar al usuario. El mensaje de éxito se imprimirá si ambas funciones compare () devuelven True. De lo contrario, se imprimirá el mensaje de error.

// Incluir la biblioteca necesaria

#incluir

usando el espacio de nombres estándar;

intmain() {

// Inicializar dos variables de cadena
cadena de correo electrónico('[correo electrónico protegido]');
contraseña de cadena('linuxhint');
// Declara dos variables de cadena
string user_email;
string user_password;

// Toma la dirección de correo electrónico del usuario
costouser_email;

// Toma la contraseña del usuario
costocontraseña de usuario;

// Verifique que el nombre de usuario y la contraseña sean válidos o inválidos
si (user_email.comparar(Email) == 0&&contraseña de usuario.comparar(contraseña) == 0 )
costo<<'Autenticación exitosa'.<<endl;
demás
costo<<'El correo electrónico o la contraseña no son válidos'.<<endl;

retorno0;
}

Producción:

Después de ejecutar el código, si el usuario escribió ' [correo electrónico protegido] 'Como dirección de correo electrónico y' 12345 'Como contraseña, se devolverá la tercera condición' si ' Falso, y aparecerá la siguiente salida.

Después de ejecutar el código nuevamente, si el usuario escribió ' [correo electrónico protegido] 'Como dirección de correo electrónico y' linuxhint 'Como contraseña, se devolverá la tercera condición' si ' Cierto, y aparecerá la siguiente salida.

Usando la función strcmp () para comparar cadenas:

Strcmp () es otra función para comparar cadenas en C ++. Devuelve verdadero si ambas cadenas de comparación son iguales. Los parámetros de entrada tomados por esta función son diferentes de la función compare (). La función de comparación toma un valor de cadena como parámetro y la función strcmp () toma la matriz de caracteres como parámetro. La sintaxis de esta función se proporciona a continuación.

Sintaxis:

En t strcmp ( constante carbonizarse *str1, constante carbonizarse *str2);

Cree un archivo C ++ con el siguiente código para comparar dos cadenas usando la función strcmp (). Se han declarado dos matrices de caracteres de 100 elementos en el código para almacenar los valores de cadena tomados por los usuarios. los obtener línea() La función se usa para almacenar la entrada del usuario en las variables de la matriz de caracteres. A continuación, el strcmp () ha utilizado la función para comprobar que los valores de entrada son iguales o no. Si la función regresa Cierto, luego se imprimirá el mensaje de éxito; de lo contrario, se imprimirá el mensaje de error,

// Incluir las bibliotecas necesarias

#incluir

#incluir

usando el espacio de nombres estándar;

intmain() {
// Delare dos variables de cadena
carbonizarsechrData1[100],chrData2[100];

// Toma la primera cadena de datos
costo<<'Ingrese la primera cadena:';
Ginebra.obtener línea(chrData1, 100);
// Toma los datos de la segunda cadena
costo<<'Ingrese la segunda cadena:';
Ginebra.obtener línea(chrData2, 100);

si ( strcmp (chrData1,chrData2)==0)
printf ('Las cuerdas son iguales orte');
demás
printf ('Las cuerdas no son iguales orte');

retorno0;
}

Producción:

Después de ejecutar el código, el valor de la cadena, ' Hola 'Se da para ambos valores de entrada, y aparecerá el siguiente resultado.

Conclusión:

En este tutorial se han mostrado tres formas de comparar cadenas en C ++ utilizando tres ejemplos simples. Tanto los usos del operador de comparación como las funciones integradas para verificar la igualdad de las cadenas se han descrito en este tutorial para ayudar a los nuevos programadores de C ++.