Fiz essa questão, uma string que é a junção de outras duas, o problema é que ele sai do looping porém a struct final "resultado" está pegando lixo. Fiz a seguinte observação: - se no segundo sprintf eu colocar mais um caracter ela da certo - enquanto escrevia isso testei colocar um /0 após sair do looping e funcionou, porém gostaria de ajuda para entender por que isso aconteceu.
#include <stdio.h>
#include <stdlib.h>
void concatena(char string[], char string2[]){
int i=0, tamanhoresultado, i2=0;
char resultado[100];
tamanhoresultado = strlen(string) + strlen(string2);
for(i=0;i<tamanhoresultado;i++){
if(i<strlen(string))
resultado[i]=string[i];
else{
resultado[i]=string2[i2];
i2++;
}
}
printf("%s\n", resultado);
}
int main()
{
char string[30], string2[30];
sprintf(string,"test");
fflush(stdin);
sprintf(string2,"ts");
fflush(stdin);
concatena(string, string2);
return 0;
}