_strset_s
, , _strset_s_l
_wcsset_s_l
_wcsset_s
_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_l
_wcsnset
_mbsnset
,_mbsnset_l