>> SPEAKER: La oss skrive et program som ber brukeren om to strenger og
deretter rapporterer om de strenger er de samme eller ikke de samme.
Jeg har allerede startet oss her ved ringer printf to ganger og ringer
GetString to ganger, lagring retur verdier i s og t, henholdsvis.
>> Nå, til mine instinkter sammenligne disse to strengene ville være å bruke det kjente
likestilling operatør -
Hvis s er lik lik t.
Så jeg kommer til å gå videre og print out "Du skrev det samme!
Else, hvis det ikke er sant, jeg er rett og slett kommer til å skrive printf ("Du skrev inn
forskjellige ting!
>> Ganske grei -
Jeg er ganske enkelt å sammenligne s mot t, og hvis de er like,
skrive ut så mye.
La oss kompilere og kjøre dette programmet.
Gjør sammenligne 0. / Sammenligne 0, si noe, hallo,
si noe, hallo.
>> Dessverre, mener det programmet jeg har skrevet forskjellige ting, selv om jeg
tydelig skrevet "hallo" den samme måte begge ganger.
Nå, hvorfor kan det være?
>> Vel, det viser seg at alt dette tid, har strenger vært litt mer
komplisert enn en sekvens av tegn under panseret.
I virkeligheten er en streng en peker eller en adresse, nemlig den adresse
for det første tegnet i den sekvens av tegn.
>> Og så når vi sammenligner s mot t med lik likhetstegnet, er vi
faktisk spør, er denne adressen lik lik denne adressen?
Og som ikke kommer til å være tilfelle hvis brukeren har skrevet inn i to forskjellige
strenger og vi har kalt GetString to ganger for å få dem, fordi hukommelsen
at GetString bruker til å lagre den første string kan være her i RAM, men den
minne som GetString bruker til å lagre den andre strengen går
å være her i RAM.
Og selvfølgelig, da, de to biter av minne har ulike adresser for
sin aller første tegn.
>> Så er s lik lik t?
Vel, nei.
Hvis s og t peker til forskjellige biter av minne, som de ville være med
ringer GetString to ganger, er de ikke, i virkeligheten kommer til å være den samme.
Derfor synes det å være tilfelle at for å sammenligne to strenger i den intuitive
måte som vi forventer, tegnet for karakter, trenger vi en annen teknikk
helt.