strcpy
, wcscpy
, _mbscpy
Bir dizeyi kopyalar. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. strcpy_s
, wcscpy_s
, _mbscpy_s
.
Önemli
_mbscpy
Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.
Sözdizimi
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
Parametreler
strDestination
Hedef dize.
strSource
Null olarak sonlandırılan kaynak dize.
Dönüş değeri
Bu işlevlerin her biri hedef dizeyi döndürür. Hata belirtmek için hiçbir dönüş değeri ayrılmaz.
Açıklamalar
İşlev, strcpy
sonlandırıcı null karakter de dahil olmak üzere öğesini tarafından strDestination
belirtilen konuma kopyalarstrSource
. Kaynak ve hedef dizeler çakışıyorsa, öğesinin davranışı strcpy
tanımlanmamıştır.
Önemli
kopyalamadan strcpy
önce strSource
içinde strDestination
yeterli alan olup olmadığını denetlemediğinden, arabellek taşmalarının olası bir nedenidir. Bu nedenle, bunun yerine kullanmanızı strcpy_s
öneririz.
wcscpy
ve _mbscpy
sırasıyla geniş karakterli ve çok baytlı sürümleridir strcpy
. bağımsız değişkenleri ve dönüş değeri wcscpy
geniş karakterli dizelerdir. bağımsız değişkenleri ve dönüş değeri _mbscpy
çok baytlı karakter dizeleridir. Bu üç işlev aynı şekilde davranır.
C++ dilinde, bu işlevlerin daha yeni ve güvenli karşılıklarını çağıran şablon aşırı yüklemeleri vardır. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
TCHAR.H olağan |
_UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tcscpy |
strcpy |
_mbscpy |
wcscpy |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
strcpy |
<string.h> |
wcscpy |
<string.h> veya <wchar.h> |
_mbscpy |
<mbstring.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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!
Ayrıca bkz.
Dize işleme
strcat
, wcscat
, _mbscat
strcmp
, wcscmp
, _mbscmp
strncat
, _strncat_l
, wcsncat
, , _wcsncat_l
, _mbsncat
, _mbsncat_l
strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l
strncpy
, _strncpy_l
, wcsncpy
, , _wcsncpy_l
, _mbsncpy
, _mbsncpy_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, , _strnicmp_l
, _wcsnicmp_l
, _mbsnicmp_l
strrchr
, wcsrchr
, _mbsrchr
, _mbsrchr_l
strspn
, wcsspn
, _mbsspn
, _mbsspn_l