strcpy

Autres langues

Langue: ja

Version: 1993-04-11 (mandriva - 01/05/08)

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

名前

strcpy, strncpy - 文字列をコピーする

書式

 #include <string.h>
 
 char *strcpy(char *dest, const char *src);
 
 char *strncpy(char *dest, const char *src, size_t n);
 

説明

strcpy() 関数は src(終端文字`\0'を含む)をポインタとする文字列を destをポインタとする配列にコピーする。 二つの文字列は重ならない。 受け側の文字列であるdestはコピーを受け取るのに十分な 程度に大きくなければならない。

srcnバイトを越えない数の文字がコピーされることを 除けば、 strncpy() 関数も同様である。 したがって、もし srcの最初のnバイトの中に NUL 文字が無ければ、 コピーの結果としてできる文字列は NUL で終端していないものになる。

src の長さが n よりも少ない場合は、 dest の残りはヌルバイトで埋められる。

返り値

strcpy() 関数と strncpy() 関数は 受け側の文字列destへのポインタを返す。

準拠

SVr4, 4.3BSD, C89, C99.

バグ

strcpy() の受け側の文字列が十分に大きくない場合 (つまり、プログラマが間抜けか不精で、 コピーする前にサイズをチェックすることを怠った場合)、何が起こるかわからない。 固定長文字列を溢れさせるのはクラッカーが好むテクニックである。

関連項目

bcopy(3), memccpy(3), memcpy(3), memmove(3), wcscpy(3), wcsncpy(3)