strcpy、wcscpy、_mbscpystrcpy, wcscpy, _mbscpy

文字列をコピーします。Copies a string. これらの関数にはセキュリティが強化されたバージョンがあります。「strcpy_s、wcscpy_s、_mbscpy_s」をご覧ください。More secure versions of these functions are available; see strcpy_s, wcscpy_s, _mbscpy_s.


_mbscpy Windows ランタイムで実行するアプリケーションでは使用できません。_mbscpy cannot be used in applications that execute in the Windows Runtime. 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。For more information, see CRT functions not supported in Universal Windows Platform apps.


char *strcpy(
   char *strDestination,
   const char *strSource
wchar_t *wcscpy(
   wchar_t *strDestination,
   const wchar_t *strSource
unsigned char *_mbscpy(
   unsigned char *strDestination,
   const unsigned char *strSource
template <size_t size>
char *strcpy(
   char (&strDestination)[size],
   const char *strSource
); // C++ only
template <size_t size>
wchar_t *wcscpy(
   wchar_t (&strDestination)[size],
   const wchar_t *strSource
); // C++ only
template <size_t size>
unsigned char *_mbscpy(
   unsigned char (&strDestination)[size],
   const unsigned char *strSource
); // C++ only


対象文字列。Destination string.

NULL で終わる元の文字列。Null-terminated source string.

戻り値Return Value

これらの関数は、コピー先文字列を返します。Each of these functions returns the destination string. エラーを示す戻り値は予約されていません。No return value is reserved to indicate an error.


Strcpy関数コピー strSourceで指定された場所に、終端の null 文字を含むstrDestinationします。The strcpy function copies strSource, including the terminating null character, to the location that's specified by strDestination. 動作strcpy元とコピー先文字列が重なり合う場合は定義されません。The behavior of strcpy is undefined if the source and destination strings overlap.


Strcpyに十分な領域をチェックしませんstrDestinationにコピーする前にstrSource、バッファー オーバーランの潜在的な原因になります。Because strcpy does not check for sufficient space in strDestination before it copies strSource, it is a potential cause of buffer overruns. したがって、代わりに strcpy_s の使用をお勧めします。Therefore, we recommend that you use strcpy_s instead.

wcscpy_mbscpyは、それぞれ、ワイド文字とマルチバイト文字のバージョンのstrcpyします。wcscpy and _mbscpy are, respectively, wide-character and multibyte-character versions of strcpy. 引数と戻り値のwcscpyはワイド文字列 _mbscpyはマルチバイト文字の文字列。The arguments and return value of wcscpy are wide-character strings; those of _mbscpy are multibyte-character strings. それ以外では、これらの関数の動作は同じです。These three functions behave identically otherwise.

C++ では、これらの関数にテンプレートのオーバーロードがあります。このオーバーロードは、これらの関数に対応するセキュリティで保護された新しい関数を呼び出します。In C++, these functions have template overloads that invoke the newer, secure counterparts of these functions. 詳細については、「 Secure Template Overloads」を参照してください。For more information, see Secure Template Overloads.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tcscpy_tcscpy strcpystrcpy _mbscpy_mbscpy wcscpywcscpy


ルーチンによって返される値Routine 必須ヘッダーRequired header
strcpystrcpy <string.h><string.h>
wcscpywcscpy <string.h> または <wchar.h><string.h> or <wchar.h>
_mbscpy_mbscpy <mbstring.h><mbstring.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.


// crt_strcpy.c
// compile with: /W3
// This program uses strcpy
// and strcat to build a phrase.

#include <string.h>
#include <stdio.h>

int main( void )
   char string[80];

   // If you change the previous line to
   //   char string[20];
   // strcpy and strcat will happily overrun the string
   // buffer.  See the examples for strncpy and strncat
   // for safer string handling.

   strcpy( string, "Hello world from " ); // C4996
   // Note: strcpy is deprecated; use strcpy_s instead
   strcat( string, "strcpy " );           // C4996
   // Note: strcat is deprecated; use strcat_s instead
   strcat( string, "and " );              // C4996
   strcat( string, "strcat!" );           // C4996
   printf( "String = %s\n", string );
String = Hello world from strcpy and strcat!

関連項目See also

文字列操作String Manipulation
strcat、wcscat、_mbscatstrcat, wcscat, _mbscat
strcmp、wcscmp、_mbscmpstrcmp, wcscmp, _mbscmp
strncat、_strncat_l、wcsncat、_wcsncat_l、_mbsncat、_mbsncat_lstrncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l
strncmp、wcsncmp、_mbsncmp、_mbsncmp_lstrncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy、_strncpy_l、wcsncpy、_wcsncpy_l、_mbsncpy、_mbsncpy_lstrncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr、wcsrchr、_mbsrchr、_mbsrchr_lstrrchr, wcsrchr, _mbsrchr, _mbsrchr_l
strspn、wcsspn、_mbsspn、_mbsspn_lstrspn, wcsspn, _mbsspn, _mbsspn_l