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


_strset, , _strset_l_wcsset_l_wcsset_mbsset,_mbsset_l

Инициализирует символы строки в соответствии с указанным символом. Доступны более безопасные версии этих функций; see_strset_s, _strset_s_l_mbsset_s_l_wcsset_s_mbsset_s_wcsset_s_l.

Внимание

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

Синтаксис

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
Строка для изменения, завершающаяся символом NULL.

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

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

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

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

Замечания

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

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

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

Внимание

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

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

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

Подпрограмма 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 );
}
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