Test Foro de elhacker.net SMF 2.1

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
#include <stdio.h>
void strcat(char*s1,char*s2);
int main()
{
char s1[50]="federico\0";
char s2[]="agustina\0";
printf("%s\n",s1);
printf("%s\n\n",s2);
strcat(s1,s2);
printf("%s\n",s1);
printf("%s\n",s2);
return 0;
}
void strcat(char*s1,char*s2)
{
   while(*s1++);
   while(*s2)
   {
       *s1++ = *s2++;
   }
}



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
while(*s1++);

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

*s1++ = *s2++;

escribes justo despues del '/0'

Citarfederico\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