Si ho capito, in effetti utilizzando la funzione esistente della libreria string.h mi basterebbe scrivere così:

#include <stdio.h>
#include <string.h>

main() {

char stringa1[100], stringa2[100];
int x;

scanf("%s", stringa1);
scanf("%s", stringa2);
scanf("%d", &x);

printf("%s", strncat(stringa1, stringa2, x));

return 0;
}


in effetti io dovrei riscrivere la funzione da zero, per esempio:
char *_strncat_(char *s1, const char *s2, int n);
dopodichè restituire alla fine il valore di _strncat_
giusto?