Поделиться через


_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

System::String::Clone

См. также

Ссылки

Управление строками (CRT)

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