この関数の目的
strncpy()は、指定文字数分だけ文字列をコピーする。
定義
#include <string.h> char *strncpy(char *s1, const char *s2, size_t n);
働き
この関数は、 n 文字以下の(ヌル文字以降の文字を除く) s2 が指す文字列を s1 が指す配列に複写する。 * 重複するオブジェクト間で転写が行われた場合の動作は未定義である。
返り値は s1 の値である。
(*) よって、 s2 が指す配列の最初の n 文字にヌル文字が含まれない場合、結果はヌル止めされない。
解説
重複するオブジェクト間での転写については、 memmove() を参照のこと。
この関数は指定文字数以上にコピーすることはないが、ヌル止めされていない文字列をコピーすると、コピー先の文字列もヌル止めされない。