STRCPY(3) FreeBSD ライブラリ関数マニュアル STRCPY(3)
名称
strcpy, strncpy − 文字列のコピー |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <string.h> char * |
strcpy(char *dst, const char *src); char * |
strncpy(char *dst, const char *src, size_t len); |
解説 |
strcpy() 関数は、文字列 src を dst にコピーします (終端の ‘\0’ 文字を含め て)。 strncpy() 関数は、 len 個以上の文字は dst にコピーせず、 src の長さが len 文字以下の場合には ‘\0’ 文字を追加します。また、 src の長さが len 文字以 上である場合は、 dst を終了させません。 |
戻り値
strcpy() および strncpy() 関数は、 dst を返します。 |
例
次の行は、 chararray を ‘‘abc\0\0\0’’ に設定します : char chararray[6]; (void)strncpy(chararray, "abc", sizeof(chararray)); 次の行は、 chararray を ‘‘abcdef’’ に設定します : char chararray[6]; (void)strncpy(chararray, "abcdefgh", sizeof(chararray)); パラメータの長さが、ソースの長さと同じかそれ以上であるため chararray は NUL で終了しないことに注意してください。 次の行は、 input から buf へ文字を適切にコピーし、その結果を NUL で終了さ せます。 strncpy() の文字列自体が NUL で終了することを保証しないためで、 これは明確にしなければなりません。 char buf[1024]; (void)strncpy(buf, input, sizeof(buf) - 1); buf[sizeof(buf) - 1] = ’\0’; 次の例のように strlcpy(3) を使用すると、より良く実行できるかもしれませ ん。 |
(void)strlcpy(buf, input, sizeof(buf)); |
strlcpy(3) は標準的には定義されていないので、移植に無関係なときだけ利用す るように注意してください。 |
関連項目
bcopy(3), memccpy(3), memcpy(3), memmove(3), strlcpy(3) |
規格
strcpy() および strncpy() 関数は、 ISO/IEC 9899:1990 (‘‘ISO C89’’) に適合 しています。 FreeBSD 10.0 August 9, 2001 FreeBSD 10.0 |