Il C + + funzione memcmp confronta un numero specificato di byte di due blocchi di memoria . Restituisce 0 se tutti i match e un valore diverso da zero per indicare che il valore è maggiore . I passi seguenti vi aiuterà a utilizzare memcmp . Istruzioni
1
Imparare la sintassi di memcmp in C + + . La sintassi completa è int memcmp ( const void * Puntatore1 , const void * pointer2 , num size_t ) .
2
noti che Puntatore1 e pointer2 sono puntatori a blocchi di memoria . Memcmp comincia all'inizio dei blocchi di memoria e confronta i valori di byte finché non trova una differenza o num byte sono stati confrontati . Se num byte partita , memcmp restituisce zero . Se il primo byte non corrispondenti come un unsigned char è maggiore per Puntatore1 , memcmp restituisce un numero intero positivo . In caso contrario , restituisce un numero intero negativo .
3
Capire che il C + + funzione memcmp è conservato nella biblioteca cstring . Potrebbe essere necessario includere il file di intestazione string.h per utilizzare questa funzione
4
Guardate il seguente programma completo per alcuni semplici esempi di come utilizzare memcmp : .
# Include # include
int main ( ) { char stringa1 [ 80 ] ; char stringa2 [ 80 ] , int n , size_t length1 , length2 ;
printf ( " Inserisci una stringa : " ) ; si ( stringa1 ) ; printf ( "Inserire un'altra stringa : " ) ; gets ( stringa2 ) ; length1 = strlen ( stringa1 ) ; length2 = strlen ( stringa2 ) ; n = memcmp ( stringa1 , stringa2 , length1 > length2 length1 : ? length2 ) ; if ( n> 0 ) printf (" '% s' è maggiore di ' % s' \\ n ". , stringa1, stringa2 ) ; else if ( nprintf ( '% s' è " minore di ' % s' \\ n . " , stringa1, stringa2 ) ; elseprintf ( " '% s' è lo stesso di '% s' \\ n " , stringa1, stringa2 ) .
return 0; }
5 < p > Osservare il seguente output di questo programma :
Inserisci una stringa: questo è un breve sentence.Enter un'altra stringa : . ' . questa è una breve frase ' Questa è una frase molto più lungo è maggiore di 'Questa è una frase molto più a lungo . '
si noti che il primo carattere non- matching è ' s 'nella prima stringa e ' m ' nella seconda stringa . il valore di byte di' s ' è 115 e il byte valore di ' m ' è 109 , quindi la prima stringa è maggiore .