#include #include #include "Strn.h" /* * Concatenate src on the end of dst. The resulting string will have at most * n-1 characters, not counting the NUL terminator which is always appended * unlike strncat. The other big difference is that strncpy uses n as the * max number of characters _appended_, while this routine uses n to limit * the overall length of dst. */ char * Strncat(char *const dst, const char *const src, const size_t n) { register size_t i; register char *d; register const char *s; if (n != 0 && ((i = strlen(dst)) < (n - 1))) { d = dst + i; s = src; /* If they specified a maximum of n characters, use n - 1 chars to * hold the copy, and the last character in the array as a NUL. * This is the difference between the regular strncpy routine. * strncpy doesn't guarantee that your new string will have a * NUL terminator, but this routine does. */ for (++i; i