Hola, gente ¿cómo están? ya los extrañaba. -
Estoy repasando punteros y me encuentro en el libro de los autores de C (creo que lo son) con esta función(d) que no logro hacer que de los resultados esperados, me podrían decir que estoy haciendo mal. -
#include <stdio.h>
void d( char *c, char *a);
int main( void ){
char a[] = "rosita", *b = "rosita", c[7];
printf("\n %s", a );
printf("\n %s \n\n ", b );
a[0] = 'R';
b = a;
printf("\n %s", a );
printf("\n %s \n\n ", b );
d( c, a );
return 0;
}
void d( char *c, char *a ){
while( (*c++ = *a++) )
;
printf("\n %s\n", c );
}
Saludos.
Citarno logro hacer que de los resultados esperados
como decir algo sin decir nada...
lo ejecuto y según la poca información que das (la palabra strcpy, que dice más que todo el resto que escribiste) funciona bien
No te funciona porque cuando copias datos mueves los punteros y despues haces un printf sobre c, que está una posición más allá de la cadena copiada.
MAFUS, estas en lo correcto, para no romperme tanto la cabeza, ¿me podrías decir como apuntar al primer carácter de c sin efectuar un nuevo bucle? -
EDITO: Con la siguiente linea lo consigo, desconozco si hay una manera mejor. -
c -=7;
Saludos.
si no usas el printf dentro de la función sino dentro de main funciona bien...
teoricamente es como estaría destinado a ser
Ahora si nos entendemos, correctísimo, me funciona todo a la perfección, muchas gracias. - ;-) ;-) ;-)
Un abrazo.