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


_strset_s, _strset_s_l, _wcsset_s, _wcsset_s_l, _mbsset_s, _mbsset_s_l

Инициализирует символы строки в соответствии с указанным символом. Эти версии , , _strset_l, _mbsset_l_wcsset_wcsset_l_mbsset имеют улучшения безопасности, как описано в функциях _strsetбезопасности в CRT.

Важно!

Функции _mbsset_s и _mbsset_s_l не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

errno_t _strset_s(
   char *str,
   size_t numberOfElements,
   int c
);
errno_t _strset_s_l(
   char *str,
   size_t numberOfElements,
   int c,
   _locale_t locale
);
errno_t _wcsset_s(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c
);
errno_t *_wcsset_s_l(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   _locale_t locale
);
errno_t _mbsset_s(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c
);
errno_t _mbsset_s_l(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   _locale_t locale
);

Параметры

str
Строка для изменения, завершающаяся символом NULL.

numberOfElements
Размер буфера str.

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

locale
Используемый языковой стандарт.

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

Нуль в случае успешного выполнения; в противном случае — код ошибки.

Эти функции проверяют свои аргументы. Если str имеет значение NULL, или аргумент меньше или равен 0, или numberOfElements блок, переданный не является пустым, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции возвращают EINVAL и устанавливают для errno значение EINVAL.

Замечания

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

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

Версии библиотек отладки этих функций сначала заполняют буфер 0xFE. Чтобы отключить это поведение, используйте _CrtSetDebugFillThreshold.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Подпрограмма TCHAR.H _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tcsset_s _strset_s _mbsset_s _wcsset_s
_tcsset_s_l _strset_s_l _mbsset_s_l _wcsset_s_l

Требования

Маршрут Обязательный заголовок
_strset_s <string.h>
_strset_s_l <tchar.h>
_wcsset_s <string.h> или <wchar.h>
_wcsset_s_l <tchar.h>
_mbsset_s, _mbsset_s_l <mbstring.h>

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

Пример

// crt_strset_s.c
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   char string[] = "Fill the string with something.";
   printf( "Before: %s\n", string );
   _strset_s( string, _countof(string), '*' );
   printf( "After:  %s\n", string );
}
Before: Fill the string with something.
After:  *******************************

См. также

Обработка строк
Локаль
Интерпретация последовательностей многобайтовых символов
_mbsnbset, _mbsnbset_l
memset, wmemset
strcat, wcscat, _mbscat
strcmp, wcscmp, _mbscmp
strcpy, wcscpy, _mbscpy
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l