Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fedemaxrul en 20 Noviembre 2016, 17:43 pm



Título: cual es el error en este codigo en el lenguaje de programacion c??
Publicado por: fedemaxrul en 20 Noviembre 2016, 17:43 pm
el programa es muy simple, quiero colocar la cadena s2 al final de la cadena s1, no me funciona, me muestra las cadenas originales
Código
  1. #include <stdio.h>
  2. void strcat(char*s1,char*s2);
  3. int main()
  4. {
  5. char s1[50]="federico\0";
  6. char s2[]="agustina\0";
  7. printf("%s\n",s1);
  8. printf("%s\n\n",s2);
  9. strcat(s1,s2);
  10. printf("%s\n",s1);
  11. printf("%s\n",s2);
  12. return 0;
  13. }
  14. void strcat(char*s1,char*s2)
  15. {
  16.    while(*s1++);
  17.    while(*s2)
  18.    {
  19.        *s1++ = *s2++;
  20.    }
  21. }


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: cual es el error en este codigo en el lenguaje de programacion c??
Publicado por: engel lex en 20 Noviembre 2016, 18:06 pm
Código:
while(*s1++);

cuando haces esto, el puntero queda en el '\0'... así que cuando vas a

Código:
*s1++ = *s2++;

escribes justo despues del '/0'

Citar
federico\0agustina\0

y bueno, creo que entiendes las consecuencias en el printf

aprende a usar el debugger de tu ide para poder detectar estos problemas