_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