>> ALTAVEU: Anem a escriure un programa que sol · licita a l'usuari dues cadenes i
informa si aquestes cadenes són els mateixos o no la mateixa.
Jo ja he començat a nosaltres fora d'aquí per trucar a printf dues vegades i cridar
GetString dues vegades, emmagatzemant el retorn valors en si i t, respectivament.
>> Ara, els meus instints per comparar aquests dos cordes seria utilitzar el familiar
operador d'igualtat -
si s és igual a és igual a t.
Llavors vaig a seguir endavant i d'impressió out "S'ha escrit la mateixa cosa!
Si no, si això no és cert, estic simplement va a escriure printf ("S'ha escrit
coses diferents!
>> Bastant senzill -
Jo simplement estic comparant s contra t, i si són iguals,
imprimir tant.
Anem a compilar i executar aquest programa.
Fer compara 0. / Comparar 0, dir alguna cosa, hola,
dir alguna cosa, hola.
>> Desafortunadament, el programa pensa que he escrit coses diferents, tot i que
clarament escrit "hola" l' mateixa manera en ambdues ocasions.
Ara, per què serà?
>> Bé, resulta que tot això temps, les cadenes han estat una mica més
complexa que una seqüència de caràcters sota de la caputxa.
En realitat, una cadena és un punter o direcció, específicament la direcció
del primer caràcter que seqüència de caràcters.
>> I així, quan comparem s contra t amb el signe igual igual, estem
en realitat preguntant, és aquesta adreça igual igual a aquesta direcció?
I això no serà el cas si l'usuari ha escrit en dos diferents
cordes i hem cridat a GetString dues vegades per aconseguir-los, perquè la memòria
que GetString s'utilitza per emmagatzemar la primera cadena podria estar aquí a la memòria RAM, però el
memòria que GetString s'utilitza per emmagatzemar la segona cadena es va
d'estar aquí a la RAM.
I, per descomptat, llavors, aquests dos trossos de memòria tenen diferents direccions per
seus primers personatges.
>> Així s igual igual a t?
Bé, no.
Si s i t estan apuntant a diferents fragments de memòria, ja que seria per
trucant GetString dues vegades, no ho són, de fet, serà la mateixa.
Per tant, sembla ser el cas que a comparar dues cadenes al intuïtiu
manera que esperem, el caràcter de caràcter, necessitem una altra tècnica
completament.