Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NOB2014 en 27 Diciembre 2016, 20:35 pm



Título: Función strcpy propia en lenguaje C. (copiar una cadena en otra)
Publicado por: NOB2014 en 27 Diciembre 2016, 20:35 pm
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. -

Código
  1. #include <stdio.h>
  2.  
  3. void d( char *c, char *a);
  4.  
  5. int main( void ){
  6. char a[] = "rosita", *b = "rosita", c[7];
  7.  
  8. printf("\n %s", a );
  9. printf("\n %s \n\n ", b );
  10.  
  11. a[0] = 'R';
  12. b = a;
  13.  
  14. printf("\n %s", a );
  15. printf("\n %s \n\n ", b );
  16.  
  17. d( c, a );
  18.  
  19. return 0;
  20. }
  21.  
  22.  
  23.  
  24. void d( char *c, char *a ){
  25. while( (*c++ = *a++) )
  26. ;
  27.  
  28. printf("\n %s\n", c );
  29. }
  30.  
Saludos.


Título: Re: Función strcpy propia en lenguaje C. (copiar una cadena en otra)
Publicado por: engel lex en 27 Diciembre 2016, 20:49 pm
Citar
no 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



Título: Re: Función strcpy propia en lenguaje C. (copiar una cadena en otra)
Publicado por: MAFUS en 27 Diciembre 2016, 21:41 pm
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.


Título: Re: Función strcpy propia en lenguaje C. (copiar una cadena en otra)
Publicado por: NOB2014 en 27 Diciembre 2016, 21:52 pm
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ódigo
  1. c -=7;

Saludos.


Título: Re: Función strcpy propia en lenguaje C. (copiar una cadena en otra)
Publicado por: engel lex en 27 Diciembre 2016, 21:58 pm
si no usas el printf dentro de la función sino dentro de main funciona bien...

teoricamente es como estaría destinado a ser



Título: Re: Función strcpy propia en lenguaje C. (copiar una cadena en otra)
Publicado por: NOB2014 en 27 Diciembre 2016, 22:07 pm
Ahora si nos entendemos, correctísimo, me funciona todo a la perfección, muchas gracias. - ;-) ;-) ;-)

Un abrazo.