>> COLUMNA: Imos escribir un programa que solicita ao usuario dúas cordas e
logo di se esas cordas son iguais ou non iguais.
Eu xa comezou nos aquí por printf chamando dúas veces e chamando
GetString dúas veces, almacenando o retorno Os valores de S e T, respectivamente.
>> Agora, os meus instintos para comparar estes dous cadeas sería usar o familiar
fornecedor de igualdade -
se s é igual é igual a t.
Entón eu estou indo a ir adiante e impresión out "Inseriu o mesmo!
Outra cousa, se iso non é verdade, eu son simplemente vai escribir printf ("Inseriu
cousas diferentes!
>> Moi sinxelo -
Estou simplemente comparando s contra t, e se son iguais,
imprimir tanto.
Imos compilar e executar este programa.
Fai comparar 0. / Compare 0, dicir algo, Ola,
dicir algo, Olá
>> Desafortunadamente, o programa pensa que eu teño ingresaran cousas distintas, aínda que
claramente escrito "Ola" a Igualmente dúas veces.
Agora, por que pode ser iso?
>> Ben, acontece que todo isto tempo, secuencias de ser un pouco máis
complexo do que unha secuencia de caracteres debaixo do capó.
En realidade, unha cadea é un punteiro ou un enderezo, especialmente a dirección
do primeiro carácter que secuencia de caracteres.
>> E así, cando comparamos s contra t co signo igual igual, estamos
realmente pedindo, é esta dirección igual igual a este enderezo?
E iso non vai ser o caso de que se o usuario inseriu en dous diferentes
cordas e chamamos GetString dúas veces para obtelos, porque a memoria
GetString que usa para almacenar o primeiro corda podería estar aquí na memoria RAM, pero o
memoria que GetString usa para almacenar a segunda corda vai
estar aquí na RAM.
E, claro, entón, estes dous anacos de memoria teñen enderezos distintos para
seus primeiros personaxes.
>> Entón é s igual igual a t?
Ben, non.
Se S e T están apuntando para diferentes anacos de memoria, como eles serían por
chamando GetString dúas veces, eles non son, de feito, será o mesmo.
Así, parece ser o caso de que a comparar dúas cordas no intuitivo
xeito que esperamos, carácter para carácter, necesitamos unha outra técnica
completamente.