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