stpncpy -- copy a fixed-size string, returning a pointer to its end


#include <string.h>

char *stpncpy(char *dest, const char *src, size_t n);


stpncpy copies at most n characters from the string pointed to by src, including the terminating \0 character, to the array pointed to by dest. Exactly n characters are written at dest. If the length strlen(src) is smaller than n, the remaining characters in dest are filled with \0 characters. If the length strlen(src) is greater than or equal to n, dest will not be \0 terminated.

The strings may not overlap.

The programmer must ensure that there is room for at least n characters at dest.

Return Value

stpncpy returns a pointer to the terminating NULL in dest, or, if dest is not NULL-terminated, dest + n.