C + + contiene già una funzione di confronto di stringa - " strcmp ( ) " - che svolge il compito di confrontare due stringhe per l'uguaglianza. Il strcmp ( ) restituisce valori diversi a seconda del rapporto delle corde tra loro . L' implementazione di una funzione strcmp ( ) differisce tra architetture di computer ( o rimane in licenza da fornitori diversi ) , ma un programmatore può implementare nuovamente la funzionalità di base del codice per vedere come funziona. Per capire la funzione , però , il programmatore deve capire come stringhe, vettori e puntatori lavorano in C e C + + . Stringhe, vettori e puntatori  
 In C , le stringhe sono collezioni ( o array ) di caratteri. Per esempio , Stati stringa char 
 [ 10 ] ; 
 
 un array di 10 caratteri , " stringa " rappresenta una frase in C. Tuttavia , le matrici sono in realtà puntatori , o variabili relative all'indirizzo di memoria . L'array " stringa" rappresenta in realtà un puntatore al primo elemento nel blocco di memoria , e il programmatore può fare riferimento agli altri elementi della serie attraverso questo puntatore . 
 Definire " strcmp ( ) " < br > 
 
 La definizione di base di una funzione strcmp sarà simile a questa : 
 
 int strcmp ( const char * str1 , char * str2 ) ; 
 
 per definizione , un funzione di confronto di stringa utilizzerà due array di caratteri ( str1 , str2 ) . Dal momento che le matrici rappresentano puntatori , la definizione avrà due puntatori di caratteri. Con questi puntatori , il programmatore può controllare ogni elemento in un array contro un altro array. Prima, però, il programmatore deve dichiarare due variabili carattere , che conterrà i valori riscontrati nelle due stringhe : 
 
 int strcmp ( const char * str1 , char * str2 ) { 
 
 char a, b; 
 
 } 
 Attraversa la Strings 
 
 Per confrontare le stringhe , la funzione deve confrontare ogni carattere in ogni stringa tra loro . Per fare questo, il programmatore utilizza i due puntatori ( str1 , str2 ) per spostare verso il basso ogni array : 
 
 while ( * str1 = '\\ 0' && * str1 == str2 * ! ) { 
 < p > str1 + + ; //sposta il puntatore del str1 stringa al carattere 
 
 str2 + + ; //fa lo stesso , str2 
 
 } 
 
 il ciclo while fa il ricerca : in primo luogo , se str1 colpi di un carattere di terminazione ( " \\ 0 ", che viene aggiunto alla fine di stringhe dal linguaggio C ) , allora il ciclo viene chiuso , perché quella stringa è fatto . In secondo luogo, se il valore di str1 ( * str1 ) non è uguale al valore di str2 ( * str2 ) , poi il ciclo si interrompe , perché le stringhe sono uguali . 
 Restituzione del risultato 
 < br 
 Strcmp > restituisce uno dei tre risultati : 0 ( se le stringhe sono uguali ) , 1 (se la prima è maggiore della seconda ) e -1 ( se la prima è minore della seconda ) : 
 < p > char a = * str1 ; 
 
 char b = * str2 ; 
 
 if ( a == b ) per 
 { return 0; } 
 
 altro 
 
 {return ( ( a  
 Poiché i cicli si fermano quando c'è disuguaglianza o quando entrambi sono terminati , il risultato finirà come due caratteri uguali ( il '\\ 0' simbolo ) oi caratteri diseguali trovati. 
 completo del codice 
 
 il codice completo , quindi , è simile a questo ( e le implementazioni varierà , a seconda tecnica o di condizioni di sistema ) : 
 
 int strcmp ( const char * str1 , char * str2 ) { 
 
 char a , b ; 
 
 while ( ! * str1 = '\\ 0' && * str1 == * str2 ) { 
 
 str1 + + ; //sposta il puntatore della stringa str1 al successivo carattere 
 
 str2 + + ; //fa la stesso , str2 
 
 } 
 
 char a = * str1 ; 
 
 char b = * str2 ; 
 
 if ( a == b ) per 
 { return 0; } 
 
 altro 
 
 {return ( ( a  
 
 < p > inserendo due stringhe , come ad esempio 
 
 char stringa1 [ 40 ] = " Questa è una stringa " ; 
 
 char stringa2 [ 40 ] = " Questa è una stringa " ; 
 
 int risultato = strcmp ( stringa1, stringa2 ) ; 
 
 tornerà 0 ;