_strdup
, _wcsdup
, _mbsdup
Menduplikasi string.
Penting
_mbsdup
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
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Parameter
strSource
String sumber yang dihentikan null.
Nilai hasil
Masing-masing fungsi ini mengembalikan penunjuk ke lokasi penyimpanan untuk string yang disalin atau NULL
jika penyimpanan tidak dapat dialokasikan.
Keterangan
Fungsi memanggil _strdup
malloc
untuk mengalokasikan ruang penyimpanan untuk salinan strSource
lalu menyalin strSource
ke ruang yang dialokasikan.
_wcsdup
dan _mbsdup
adalah versi karakter lebar dan multibyte-character dari _strdup
. Argumen dan nilai yang dikembalikan adalah _wcsdup
string karakter lebar. Argumen dan nilai yang dikembalikan adalah _mbsdup
string multibyte-character. Ketiga fungsi ini berulah secara identik jika tidak.
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 |
---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Karena _strdup
panggilan malloc
untuk mengalokasikan ruang penyimpanan untuk salinan strSource
, adalah praktik yang baik selalu untuk melepaskan memori ini dengan memanggil free
rutinitas pada pointer yang dikembalikan oleh panggilan ke _strdup
.
Jika _DEBUG
dan _CRTDBG_MAP_ALLOC
didefinisikan, _strdup
dan _wcsdup
digantikan oleh panggilan ke _strdup_dbg
dan _wcsdup_dbg
, untuk memungkinkan debugging alokasi memori. Untuk informasi selengkapnya, lihat _strdup_dbg
, _wcsdup_dbg
.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> atau <wchar.h> |
_mbsdup |
<mbstring.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_strdup.c
#include <string.h>
#include <stdio.h>
int main( void )
{
char buffer[] = "This is the buffer text";
char *newstring;
printf( "Original: %s\n", buffer );
newstring = _strdup( buffer );
printf( "Copy: %s\n", newstring );
free( newstring );
}
Original: This is the buffer text
Copy: This is the buffer text
Baca juga
Manipulasi string
memset
, wmemset
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk