Strncmp c ++

Strncmp c ++
Le stringhe sono la parte principale del linguaggio C ++ in quanto contiene molte funzioni integrate per svolgere alcune attività specifiche su quelle stringhe. Puoi creare substrings, controllare le loro dimensioni e metterle in relazione tra loro. Il confronto delle stringhe è il concetto più utilizzato in C++. Per fare questo, C ++ ha inventato la funzione strncmp (). È abbastanza facile da usare con le istruzioni if-else nel codice. Pertanto, discuteremo del suo lavoro in Ubuntu 20.04 Sistema. Iniziamo con la nuova generazione di file C ++ con istruzioni touch sulla shell e apriamo con la parola chiave "nano".

Esempio 01:

Iniziamo con il primo esempio per utilizzare la funzione strncmp (). Il codice è stato avviato con l'inclusione della libreria C ++. Le librerie di intestazione che abbiamo incluso sono "iostream" e "stringa.h "per l'uso del flusso di input-output e le funzioni stringa direttamente nel codice. Lo spazio dei nomi "std" C ++ è necessario per aggiungere all'interno del codice per utilizzare le dichiarazioni "CIN" e "COUT". Tutto il codice è stato svolto all'interno della funzione principale (). Quindi, l'abbiamo avviato con la dichiarazione e l'inizializzazione delle variabili di stringa di tipo a due caratteri della dimensione 30, i.e. S1 e S3. Entrambi i file contengono i valori del tipo di stringa in essi, i.e. mezzo uguale e mezzo diverso. La funzione strncmp () è stata chiamata per confrontare entrambe le due variabili S1 e S2.

Questa chiamata di funzione ha utilizzato sia le variabili S1 che S2 negli argomenti e il numero di elementi che vogliamo confrontare, i.e. 9. Il numero di caratteri uguali per entrambe le stringhe restituite dalla funzione strncmp () verrà salvato nella variabile intera "I". Ecco che arriva l'istruzione "if-else" per verificare se il numero restituito di caratteri uguali è zero, inferiore a 0 o maggiore di 0. Se il numero "i" è uguale a zero, l'istruzione cout visualizzerà la stringa uguale output. Ciò significa che finora non ci sono personaggi senza pari. Altrimenti, l'istruzione "cout" altro mostrerà che le stringhe non sono uguali.

Dopo questa compilazione del codice con G ++ ed esecuzione con "./UN.comando fuori ", abbiamo ottenuto il risultato in quanto mostra che entrambe le stringhe sono uguali ai primi 9 caratteri in ciascuno.

Cambiamo il numero di caratteri da confrontare tra le due stringhe. Quindi, abbiamo utilizzato lo stesso pezzo di codice per C++. Abbiamo aggiornato la funzione strncmp () qui sostituendo il suo terzo argomento. Abbiamo sostituito 9 per 14 per confrontare il totale dei primi 14 caratteri da entrambe le stringhe.

Dopo la compilazione e l'esecuzione del codice aggiornato, abbiamo ottenuto l'output mostrato di seguito. Poiché la stringa 1 è diversa dalla stringa 2 in poi, è 10th il personaggio mostra che entrambe le stringhe non sono uguali dopo i primi 9 caratteri.

Esempio 02:

Diamo un'occhiata a un altro esempio della funzione strncmp () che lavora su diversi tipi di stringhe. Questa volta, daremo un'occhiata a due stringhe di tipo personaggio con casi diversi. Quindi, abbiamo iniziato questo esempio con le stesse intestazioni e lo spazio dei nomi di C ++ prima dell'implementazione della funzione principale (). All'interno del metodo principale (), le stringhe di tipo 2 caratteri sono state inizializzate con valori di stringa; Entrambi sono gli stessi nei caratteri ma diversi nei casi di tipo, io.e. Più sopra e più sotto. Il metodo strncmp () è stato chiamato per verificare se entrambe le stringhe sono uguali ai primi 5 caratteri. La dichiarazione "if-else" funzionerà di conseguenza, io.e. uguale o non uguale. Salviamo ed eseguiamo questo codice per vedere l'aggiornamento funziona correttamente o no.

Abbiamo compilato prima questo codice e lo abbiamo eseguito dopo. In cambio, abbiamo capito che le corde non sono uguali. Ciò dimostra che la funzione strncmp () restituisce 0 se e solo se entrambe le stringhe sono le stesse nei caratteri e nei casi di tipo. Altrimenti, restituirà un valore inferiore o uguale a 0.

Pertanto, abbiamo aggiornato i valori della stringa nel codice con gli stessi casi di tipo e caratteri. Dopo l'inizializzazione della stringa, abbiamo chiamato il metodo strncmp () per confrontare sia la stringa fino all'ultimo carattere. Abbiamo aggiunto qui l'istruzione "if-else" nidificata per verificare più di 1 condizione. Se il valore di restituzione è uguale a 0, restituirà che le stringhe sono uguali insieme alla visualizzazione del valore restituito. Altrimenti, se il valore di confronto restituito è maggiore o inferiore a 0, agirà di conseguenza e mostrerà quel particolare valore restituito.

Dopo la compilazione e l'esecuzione di questo codice aggiornato, abbiamo ricevuto il messaggio "stringhe sono uguali" e il valore restituito, i.e. 0.

Esempio 03:

Abbiamo fatto con tutti gli esempi usando la funzione strncmp () per vedere se due stringhe sono uguali o no. Questa volta guarderemo la funzione strncmp (). Utilizzeremo una stringa grande e una piccola stringa nel codice. Quindi, abbiamo iniziato il nostro esempio con iostream e la stringa.Librerie di intestazione H usando la parola chiave "#include" con entrambi. Dopo aver aggiunto lo spazio dei nomi, abbiamo avviato la funzione principale () con due variabili di stringa inizializzazione.

La stringa S1 contiene più di 5 caratteri e la stringa S2 contiene solo 5. La funzione strncmp () è stata eseguita con una semplice funzione chiamata passando entrambe le variabili al suo argomento. Il numero di caratteri da abbinare è impostato su 5. La funzione strncmp () confronterà entrambe le variabili e restituirà il risultato particolare. Poiché la nostra prima stringa è di dimensioni maggiori di 2nd stringa e non corrisponde a 2nd String, quindi la parte "else-if" dell'istruzione per "i> 0" verrà eseguita. In cambio, mostrerà che "S1 è maggiore di S2" insieme al valore restituito di "I" per diversi personaggi non corrispondenti.

Dopo aver eseguito questo codice sulla shell, abbiamo ottenuto il risultato come previsto, io.e. S1 è maggiore di S2 d'altra parte, il valore di "I" viene restituito come "32".

Il codice complessivo per questo esempio rimarrà lo stesso di quello che abbiamo fatto nel codice sopra. L'unica modifica che abbiamo ricevuto qui è lo scambio di valori di stringa tra loro. Ora, la stringa S2 ha una dimensione maggiore della stringa S1. In questo caso, l'ultima dichiarazione deve essere eseguita. Esemiamo questo codice ora.

Dopo questa compilazione ed esecuzione del codice, abbiamo visto che la parte altro del codice è stata eseguita dopo la chiamata di funzione strncmp (). Mostra che la prima stringa è di dimensioni più piccole dell'altra stringa mentre nessuno dei caratteri corrisponde esattamente.

Conclusione:

Alla fine, abbiamo completato la spiegazione della funzione strncmp () di C ++ per confrontare due stringhe. Abbiamo discusso del metodo strncmp () con diversi tipi di stringhe, i.e. uno più grande dell'altro di dimensioni, stesse stringhe e stringhe diverse. Finora sono state utilizzate dichiarazioni semplici e nidificate "if-else" per far sì che il nostro codice controlli le diverse condizioni per le stringhe e i valori restituiti con un metodo strncmp (). A causa della semplicità dei nostri esempi, speriamo che troverai facile da imparare e implementare.