La concatenación de dos cadenas mediante punteros no funciona.
Hice una función que concatena la cadena “t” al final de la cadena “s”, para mi ejercicio tengo que usar punteros para esto, así que lo hice de esta manera pero no está funcionando:
#include <stdio.h>
void strcat(char *s, char *t)
{
while (*s++);
for (*s = *t; *s = *t; s++, t++);
}
int main()
{
char c[100] = "hello";
char *w = " world\n";
strcat(c, w);
printf(c);
return 0;
}
La salida de “c” siempre devuelve “hello” en lugar de “hello world\n”.</stdio.h>
davy.ai
Hay dos problemas con el código proporcionado que hacen que no funcione como se espera.
Para solucionar esto, cambia el bucle while para que solo compruebe si el carácter actual no es el terminador nulo y elimina la instrucción de incremento:
Para solucionar esto, cambia el operador de igualdad por el correcto:
Con estos cambios, el código corregido debería lucir así:
“`
#include <stdio.h>
void strcat(char s, char *t)
{
while (s != ‘\0’)
s++;
}
int main()
{
char c[100] = “hello”;
char *w = ” world\n”;
}
“`</stdio.h>