1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include <string.h> char* strncat(char *s1, const char *s2, size_t n) { char *os1; long nn; os1 = s1; nn = n; while(*s1++) ; s1--; while(*s1++ = *s2++) if(--nn < 0) { s1[-1] = 0; break; } return os1; }