Il problema è che, anche con le soluzioni proposte sopra, dà l'errore (avevo già provato, proprio perchè so che la funzione strcat() non ritorna una stringa).

Questo programma, infatti funziona perfettamente:
codice:
char a[20] = "ciao";
char b[5] = "b2b\n";
strcat(a, b);
printf("%s", a);
e pure questo, anche se non stampa certo il risultato voluto:
codice:
char a[20] = "ciao";
char b[5] = "b2b\n";
printf("%d", strcat(a, b));
Ciao.