_strdup, _wcsdup, _mbsdup
Дублирует строки.
Важно |
---|
_mbsdup нельзя использовать в приложениях, выполняемых в Среда выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /ZW. |
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Параметры
- strSource
Объединения завершенной строка источника.
Возвращаемое значение
Каждая из этих функций возвращает указатель на место хранения для скопированной строки или значение NULL, если хранилище не могут быть выбраны.
Заметки
Вызовы функций malloc_strdup, чтобы выделить дисковое пространство для копирования strSource и затем скопируйте strSource к выбранному пробел.
_wcsdup и _mbsdup — двубайтовая и многобайтовая символьные версии _strdup.Аргументы и возвращаемое значение _wcsdup являются строками из двубайтовых символов; они же в _mbsdup являются строками с многобайтовых символов.В остальных случаях эти три функции ведут себя идентично.
Универсальное текстовое сопоставление функций
Функция TCHAR.H |
неопределенные _UNICODE & _MBCS |
определенные _MBCS |
Определение _UNICODE |
---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Поскольку метод _strdup вызывает метод malloc, чтобы выделить дисковое пространство для копирования strSource, рекомендуется всегда выпуска эта память, вызвав процедуру свободный для указателей, возвращаемый вызовом метода _strdup.
Если _DEBUG и _CRTDBG_MAP_ALLOC определены, _strdup и _wcsdup заменяются вызовом функции _strdup_dbg и _wcsdup_dbg, чтобы разрешить для отладки выделения памяти.Для получения дополнительной информации см. _strdup_dbg, _wcsdup_dbg.
Требования
Функция |
Требуемый заголовок |
---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> или <wchar.h> |
_mbsdup |
<mbstring.h> |
Для дополнительных данных о совместимости см. в разделе Совместимость.
Пример
// 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 );
}
Эквивалент в .NET Framework
См. также
Ссылки
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