>> COLUNA: Vamos escrever um programa que solicita ao usuário duas cordas e
em seguida, informa se essas cordas são iguais ou não iguais.
Eu já começou nos aqui por printf chamando duas vezes e chamando
GetString duas vezes, armazenando o retorno Os valores de S e T, respectivamente.
>> Agora, meus instintos para comparar esses dois cadeias seria utilizar o familiar
operador de igualdade -
se s é igual é igual a t.
Então eu estou indo para ir em frente e impressão out "Você digitou a mesma coisa!
Outra coisa, se isso não é verdade, eu sou simplesmente vai digitar printf ("Você digitou
coisas diferentes!
>> Bastante simples -
Estou simplesmente comparando s contra t, e se eles são iguais,
imprimir tanto.
Vamos compilar e executar esse programa.
Faça comparar 0. / Compare 0, dizer algo, Olá,
dizer algo, Olá.
>> Infelizmente, o programa pensa que eu tenho digitado coisas diferentes, embora eu
claramente digitado "Olá" a mesma forma duas vezes.
Agora, por que pode ser isso?
>> Bem, acontece que tudo isso tempo, seqüências de ter sido um pouco mais
complexo do que uma seqüência de caracteres debaixo do capô.
Na realidade, uma string é um ponteiro ou um endereço, especificamente o endereço
do primeiro caractere em que sequência de caracteres.
>> E assim, quando comparamos s contra t com o sinal de igual igual, estamos
realmente pedindo, é este endereço igual igual a este endereço?
E isso não vai ser o caso se o usuário digitou em dois diferentes
cordas e nós chamamos GetString duas vezes para obtê-los, porque a memória
GetString que usa para armazenar o primeiro corda poderia estar aqui na RAM, mas o
memória que GetString usa para armazenar a segunda corda vai
estar aqui na RAM.
E, claro, então, esses dois pedaços de memória têm endereços diferentes para
seus primeiros personagens.
>> Então é s igual igual a t?
Bem, não.
Se S e T estão apontando para diferentes pedaços de memória, como eles seriam por
chamando GetString duas vezes, eles não são, na verdade, será o mesmo.
Assim, parece ser o caso de que a comparar duas cordas no intuitivo
maneira que esperamos, caráter para caráter, precisamos de uma outra técnica
completamente.