C/C++: Resolución al problema que planteó Ricardo I
En los comentario de "¿Quién me mandará a mi meterme en estas cosas?!?!", Ricardo Varela planteó dos problemas.
El primero fue:
/*Y adicionalmente, porque tu horizonte mental se amplia si eres capaz de entender lo que hace esto:*/
char *dp = &dest[0], *sp = &src[0];
while(*sp != '\0')
*dp++ = *sp++;
*dp = '\0';
/*Jejeje, pues que sepa Ricardo, que lo entiendo y sino que me corrija a la explicación que daré ahora.*/
El segundo problema fue:
"como podemos intercambiar el valor de dos enteros sin usar una variable intermedia?"
/*A este segundo de momento no tengo solución, por eso he numerado este post, en cuanto la tenga publicaré "Resolución al problema que Ricardo planteó II" */
Pues aquí está la resolución al primer problema:
Este fragmento de código copia el contenido de la variable src a la variable dest, para ello debemos de tenerlas declaradas:
char src[11] = "HelloWorld!", dest[11];
Creamos dos punteros de tipo Char que apunten al primer carácter de cada variable:
char *dp = &dest[0], *sp = &src[0];
Con el siguiente bucle, mientras el carácter de *sp sea diferente de "\0" (el final de una cadena) el siguiente de dest será igual al siguiente de src.
while (*sp != "\0")
*dp++ = *sp++;
Y por último terminamos la cadena:
*dp = "\0";
Seguramente mi explicación no haya sido la correcta, ya que llevo poquito tiempo con C. Si me he equivocado en algo avisadme.
Y pronto tendréis respuesta al segundo problema.