strcat_s
, , wcscat_s
_mbscat_s
,_mbscat_s_l
Menambahkan string. Versi strcat
, , _mbscat
wcscat
ini memiliki peningkatan keamanan, seperti yang dijelaskan dalam Fitur keamanan di CRT.
Penting
_mbscat_s
dan _mbscat_s_l
tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
errno_t strcat_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
errno_t wcscat_s(
wchar_t *strDestination,
size_t numberOfElements,
const wchar_t *strSource
);
errno_t _mbscat_s(
unsigned char *strDestination,
size_t numberOfElements,
const unsigned char *strSource
);
errno_t _mbscat_s_l(
unsigned char *strDestination,
size_t numberOfElements,
const unsigned char *strSource,
_locale_t locale
);
template <size_t size>
errno_t strcat_s(
char (&strDestination)[size],
const char *strSource
); // C++ only
template <size_t size>
errno_t wcscat_s(
wchar_t (&strDestination)[size],
const wchar_t *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s(
unsigned char (&strDestination)[size],
const unsigned char *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s_l(
unsigned char (&strDestination)[size],
const unsigned char *strSource,
_locale_t locale
); // C++ only
Parameter
strDestination
Buffer string tujuan yang dihentikan null.
numberOfElements
Ukuran buffer string tujuan.
strSource
Buffer string sumber yang dihentikan null.
locale
Lokal untuk digunakan.
Nilai hasil
Nol jika berhasil; kode kesalahan pada kegagalan.
Kondisi kesalahan
strDestination |
numberOfElements |
strSource |
Nilai hasil | Isi dari strDestination |
---|---|---|---|---|
NULL atau tidak ditentukan |
any | any | EINVAL |
tidak dimodifikasi |
any | any | NULL |
EINVAL |
strDestination[0] atur ke 0 |
any | 0, atau terlalu kecil | any | ERANGE |
strDestination[0] atur ke 0 |
Keterangan
Fungsi menambahkan strcat_s
strSource
dan strDestination
mengakhiri string yang dihasilkan dengan karakter null. Karakter awal menimpa strSource
karakter strDestination
null yang mengakhiri . Perilaku strcat_s
tidak terdefinisi jika string sumber dan tujuan tumpang tindih.
Parameter kedua adalah ukuran total buffer, bukan ukuran yang tersisa:
char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End"); // Correct
strcat_s(buf, 16 - strlen(buf), " End"); // Incorrect
wcscat_s
dan _mbscat_s
adalah versi karakter lebar dan multibyte-character dari strcat_s
. Argumen dan nilai yang dikembalikan adalah wcscat_s
string karakter lebar. Argumen dan nilai yang dikembalikan adalah _mbscat_s
string multibyte-character. Ketiga fungsi ini berulah secara identik jika tidak.
Jika strDestination
adalah penunjuk null, atau tidak dihentikan null, atau jika strSource
adalah NULL
penunjuk, atau jika string tujuan terlalu kecil, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini kembali EINVAL
dan diatur errno
ke EINVAL
.
Versi fungsi yang memiliki _l
akhiran memiliki perilaku yang sama, tetapi gunakan parameter lokal yang diteruskan alih-alih lokal saat ini. Untuk informasi selengkapnya, lihat Lokal.
Di C++, menggunakan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat; kelebihan beban dapat menyimpulkan panjang buffer secara otomatis (menghilangkan kebutuhan untuk menentukan argumen ukuran) dan mereka dapat secara otomatis mengganti fungsi lama yang tidak aman dengan rekan-rekan yang lebih baru dan aman. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
Versi pustaka debug dari fungsi-fungsi ini terlebih dahulu mengisi buffer dengan 0xFE. Untuk menonaktifkan perilaku ini, gunakan _CrtSetDebugFillThreshold
.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR.H Rutin |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcscat_s |
strcat_s |
_mbscat_s |
wcscat_s |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
strcat_s |
<string.h> |
wcscat_s |
<string.h> atau <wchar.h> |
_mbscat_s |
<mbstring.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
Lihat contoh kode di strcpy_s
, wcscpy_s
, _mbscpy_s
.
Lihat juga
Manipulasi string
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