>> ALTAVOZ: Vamos a escribir un programa que solicita al usuario dos cadenas y
informa si esas cadenas son los mismos o no la misma.
Yo ya he empezado a nosotros fuera de aquí por llamar a printf dos veces y llamar
GetString dos veces, almacenando el retorno valores en s y t, respectivamente.
>> Ahora, mis instintos para comparar estos dos cuerdas sería utilizar el familiar
operador de igualdad -
si s es igual a es igual a t.
Entonces voy a seguir adelante y de impresión out "Se ha escrito la misma cosa!
Si no, si eso no es cierto, estoy simplemente va a escribir printf ("Se ha escrito
cosas diferentes!
>> Bastante sencillo -
Yo simplemente estoy comparando s contra t, y si son iguales,
imprimir tanto.
Vamos a compilar y ejecutar este programa.
Hacer compara 0. / Comparar 0, decir algo, hola,
decir algo, hola.
>> Desafortunadamente, el programa piensa que he escrito cosas diferentes, a pesar de que
claramente escrito "hola" el misma forma en ambas ocasiones.
Ahora, ¿por qué será?
>> Bueno, resulta que todo esto tiempo, las cadenas han sido un poco más
compleja que una secuencia de caracteres debajo de la capucha.
En realidad, una cadena es un puntero o un dirección, específicamente la dirección
del primer carácter que secuencia de caracteres.
>> Y así, cuando comparamos s contra t con el signo igual igual, estamos
en realidad preguntando, es esta dirección igual igual a esta dirección?
Y eso no va a ser el caso si el usuario ha escrito en dos diferentes
cuerdas y hemos llamado a GetString dos veces para conseguirlos, porque la memoria
que GetString utiliza para almacenar la primera cadena podría estar aquí en la memoria RAM, pero el
memoria que GetString utiliza para almacenar la segunda cadena se va
de estar aquí en la RAM.
Y, por supuesto, entonces, esos dos trozos de memoria tienen diferentes direcciones para
sus primeros personajes.
>> Así es s igual igual a t?
Bueno, no.
Si s y t están apuntando a diferentes fragmentos de memoria, ya que sería por
llamando GetString dos veces, no lo son, de hecho, va a ser la misma.
Por lo tanto, parece ser el caso de que a comparar dos cadenas en el intuitivo
manera que esperamos, el carácter de carácter, necesitamos otra técnica
por completo.