Com es compara la cadena en C ++

How Compare String C



Comparar cadenes és una tasca molt comuna per a qualsevol llenguatge de programació. S'utilitza principalment per validar les dades, com ara comprovar el nom d'usuari i la contrasenya de la informació d'inici de sessió. La comparació de cadenes es pot fer mitjançant un operador de comparació o mitjançant funcions integrades. Hi ha dues funcions de comparació de cadenes utilitzades en C ++: strcmp () i compare () . El strcmp () és una funció de biblioteca de C per comparar dues cadenes. El c comparar () és una funció integrada de C ++ per comparar dues cadenes. Les maneres de comparar cadenes mitjançant operadors i funcions de comparació s’han explicat en aquest tutorial.

Requisit previ:

Abans de comprovar els exemples d’aquest tutorial, heu de comprovar que el compilador g ++ està instal·lat o no al sistema. Si feu servir Visual Studio Code, instal·leu les extensions necessàries per compilar el codi font de C ++ per crear el codi executable. Aquí, s’ha utilitzat l’aplicació Visual Studio Code per compilar i executar el codi C ++.







Utilitzant l'Operador de comparació per comparar la cadena:

La forma més comuna de comparar cadenes en C ++ és mitjançant l’operador de comparació. Aquests són operadors iguals (==) i no iguals (! =). Creeu un fitxer C ++ amb el codi següent per comparar dos valors de cadena mitjançant l'operador de comparació. Segons el codi, es prendrà una adreça URL de l'usuari i es compararà amb altres cadenes mitjançant un operador igual (==). Si el valor d'entrada coincideix amb qualsevol cadena de la condició 'si', s'imprimirà el missatge específic; en cas contrari, es mostrarà el missatge de la part 'else'.



// Inclou la biblioteca necessària

#incloure

usingnamespace std;

principal() {
// Declareu una variable de cadena
cadena url_addr;
// Preneu una adreça URL de l'usuari
costurl_addr;
// Compareu el valor d'entrada amb una altra cadena amb un operador equivalent
si(url_addr== 'Google.com')
cost<<'És un lloc web de motors de cerca'.<<endl;
elseif(url_addr== 'Jooble.org')
cost<<'És un lloc web que busca feina'.<<endl;
elseif(url_addr== 'Linuxhint.com')
cost<<'És un lloc web de blocs'.<<endl;
en cas contrari
cost<<'No s'afegeix cap informació per a aquest lloc.'<<endl;

tornar0;
}

Sortida:



Després d’executar el codi, si l’usuari va escriure ‘ linuxhint.com 'Com a entrada, es retornarà la tercera condició' si ' Cert, i apareixerà la següent sortida.





Utilitzant la funció compare () per comparar la cadena:

La funció compare () compara dues cadenes i retorna 0 o 1 o -1 segons el resultat de la comparació. El significat dels valors de retorn es dóna a continuació.



  • La funció retornarà 0 quan les dues cadenes de comparació siguin iguals.
  • La funció retornarà 1 quan la primera cadena sigui superior a la segona.
  • La funció retornarà -1 quan la primera cadena sigui inferior a la segona cadena.

Sintaxi:

intcadena1.comparar(cadena2)

Creeu un fitxer C ++ amb el codi següent per comparar dos valors de cadena amb dos valors d’entrada mitjançant la funció compare (). Es pot comprovar l'autenticació de qualsevol usuari comparant els valors enviats pels usuaris amb els valors de l'usuari autenticat. Aquest procés d'autenticació s'ha implementat al codi següent. L'adreça de correu electrònic i la contrasenya vàlides s'han emmagatzemat aquí en dues variables de cadena. A continuació, aquests valors s'han comparat amb l'adreça de correu electrònic i la contrasenya extretes de l'usuari que utilitza compare () funció. El lògic I S'ha utilitzat l'operador al codi per autenticar l'usuari. El missatge d’èxit s’imprimirà si ambdues funcions compare () retornen True. En cas contrari, s’imprimirà el missatge d’error.

// Inclou la biblioteca necessària

#incloure

usingnamespace std;

principal() {

// Inicialitzar dues variables de cadena
correu electrònic de cadena('[email protected]');
contrasenya de cadena('linuxhint');
// Declareu dues variables de cadena
string user_email;
string user_password;

// Preneu l'adreça de correu electrònic de l'usuari
costcorreu_usuari;

// Preneu la contrasenya de l'usuari
costcontrasenya_usuari;

// Comproveu el nom d’usuari i la contrasenya sigui vàlida o no vàlida
si (correu_usuari.comparar(correu electrònic) == 0&&contrasenya_usuari.comparar(contrasenya) == 0 )
cost<<'L'autenticació s'ha realitzat correctament.'<<endl;
en cas contrari
cost<<'El correu electrònic o la contrasenya no són vàlids.'<<endl;

tornar0;
}

Sortida:

Després d’executar el codi, si l’usuari va escriure ‘ [protegit per correu electrònic] 'Com a adreça de correu electrònic i' 12345 'Com a contrasenya, es retornarà la tercera condició' si ' Fals, i apareixerà la següent sortida.

Després d’executar de nou el codi, si l’usuari va escriure ‘ [protegit per correu electrònic] 'Com a adreça de correu electrònic i' linuxhint 'Com a contrasenya, es retornarà la tercera condició' si ' Cert, i apareixerà la següent sortida.

Utilitzant la funció strcmp () per comparar la cadena:

El strcmp () és una altra funció per comparar cadenes en C ++. Es torna cert si les dues cadenes de comparació són iguals. Els paràmetres d'entrada presos per aquesta funció són diferents de la funció compare (). La funció de comparació pren un valor de cadena com a paràmetre i la funció strcmp () pren la matriu char com a paràmetre. La sintaxi d'aquesta funció es dóna a continuació.

Sintaxi:

int strcmp ( const char *str1, const char *str2);

Creeu un fitxer C ++ amb el codi següent per comparar dues cadenes mitjançant la funció strcmp (). S'han declarat dues matrius de caràcters de 100 elements al codi per emmagatzemar els valors de cadena presos pels usuaris. El getline () La funció s’utilitza per emmagatzemar l’entrada de l’usuari a les variables de la matriu de caràcters. A continuació, el strcmp () s'ha utilitzat per comprovar si els valors d'entrada són iguals o no. Si torna la funció Cert, llavors s'imprimirà el missatge d'èxit; en cas contrari, s’imprimirà el missatge d’error,

// Incloeu les biblioteques necessàries

#incloure

#incloure

usingnamespace std;

principal() {
// Esborreu dues variables de cadena
charchrData1[100],chrData2[100];

// Agafeu les primeres dades de cadena
cost<<'Introduïu la primera cadena:';
ginebra.getline(chrData1, 100);
// Agafeu les dades de la segona cadena
cost<<'Introduïu la segona cadena:';
ginebra.getline(chrData2, 100);

si ( strcmp (chrData1,chrData2)==0)
printf (Les cordes són iguals n');
en cas contrari
printf (Les cordes no són iguals n');

tornar0;
}

Sortida:

Després d'executar el codi, el valor de la cadena ' Hola 'Es dóna per als dos valors d'entrada i apareixerà la següent sortida.

Conclusió:

En aquest tutorial s’han mostrat tres maneres de comparar cadenes en C ++ mitjançant tres exemples senzills. Tant els usos de l'operador de comparació com les funcions integrades per comprovar la igualtat de les cadenes s'han descrit en aquest tutorial per ajudar els nous programadors de C ++.