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


#include <string.h>

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


The stpncpy() function shall copy at most n characters from the string pointed to by src, including the terminating null 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 null terminated.

The strings may not overlap.

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

Return Value

The stpncpy() function shall return a pointer to the terminating NULL in dest, or, if dest is not NULL-terminated, dest + n.