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


_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

Устанавливает символы строки в указанный символ. Существуют более безопасные версии этих функций; см. раздел _strset_s, _strset_s_l, _wcsset_s, _wcsset_s_l, _mbsset_s, _mbsset_s_l.

Важно!

_mbsset и _mbsset_l не могут использоваться в приложениях, выполняемых в Среда выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.

char *_strset(
   char *str,
   int c 
);
char *_strset_l(
   char *str,
   int c,
   locale_t locale
);
wchar_t *_wcsset(
   wchar_t *str,
   wchar_t c 
);
wchar_t *_wcsset_l(
   wchar_t *str,
   wchar_t c,
   locale_t locale
);
unsigned char *_mbsset(
   unsigned char *str,
   unsigned int c 
);
unsigned char *_mbsset_l(
   unsigned char *str,
   unsigned int c,
   _locale_t locale
);

Параметры

  • str
    Строка, заканчивающаяся нулевым символом, для установки.

  • c
    Параметр символов.

  • locale
    Языковой стандарт, который необходимо использовать.

Возвращаемое значение

Возвращает указатель на измененную строку.

Заметки

Функция _strset устанавливает все символы (за исключением завершающего нулевого символа) str в c, преобразованный в char. _wcsset и _mbsset_l являются расширенной и многобайтовой версиями _strset, и типы данных аргументов и возвращаемых значений различаются соответственно. В остальном эти функции ведут себя идентично.

_mbsset проверяет свои параметры. Если str является пустым указателем, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, то _mbsset возвращает NULL и устанавливает errno в EINVAL. _strset и _wcsset не проверяют свои параметры.

Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale, _wsetlocale. Версии этих функций с суффиксом _l идентичны версиям без суффикса, за исключением того, что версии с суффиксом _l используют переданный параметр языкового стандарта вместо текущего языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.

Примечание о безопасностиПримечание по безопасности

Эти функции могут быть подвержены угрозам переполнения буфера.Переполнение буфера можно использовать для атак на систему, поскольку оно может привести к несанкционированному повышению уровня привилегий.Дополнительные сведения см. в разделе Как избежать переполнения буфера.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

_UNICODE & _MBCS не определены

_MBCS определено

_UNICODE определено

_tcsset

_strset

_mbsset

_wcsset

_tcsset_l

_strset_l

_mbsset_l

_wcsset_l

Требования

Подпрограмма

Обязательный заголовок

_strset

<string.h>

_strset_l

<tchar.h>

_wcsset

<string.h> или <wchar.h>

_wcsset_l

<tchar.h>

_mbsset, _mbsset_l

<mbstring.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_strset.c
// compile with: /W3

#include <string.h>
#include <stdio.h>

int main( void )
{
   char string[] = "Fill the string with something.";
   printf( "Before: %s\n", string );
   _strset( string, '*' ); // C4996
   // Note: _strset is deprecated; consider using _strset_s instead
   printf( "After:  %s\n", string );
}
  

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.

См. также

Ссылки

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

Языковой стандарт

Интерпретация последовательностей в многобайтной кодировке

_mbsnbset, _mbsnbset_l

memset, wmemset

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

strcpy, wcscpy, _mbscpy

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l