Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Инициализирует символы строки в конкретный символ. Существуют более безопасные версии этих функций; see_strnset_s, _strnset_s_l_mbsnset_s_l_wcsnset_s_mbsnset_s_wcsnset_s_l.
Внимание
Функции _mbsnset и _mbsnset_l не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
char *_strnset(
char *str,
int c,
size_t count
);
char *_strnset_l(
char *str,
int c,
size_t count,
_locale_t locale
);
wchar_t *_wcsnset(
wchar_t *str,
wchar_t c,
size_t count
);
wchar_t *_wcsnset_l(
wchar_t *str,
wchar_t c,
size_t count,
_locale_t locale
);
unsigned char *_mbsnset(
unsigned char *str,
unsigned int c,
size_t count
);
unsigned char *_mbsnset_l(
unsigned char *str,
unsigned int c,
size_t count,
_locale_t locale
);
Параметры
str
Строка, которую требуется изменить.
c
Параметр символов.
count
Количество символов для изменения.
locale
Используемый языковой стандарт.
Возвращаемое значение
Возвращает указатель на измененную строку.
Замечания
Функция _strnset устанавливает count первых символов строки str в значение c (преобразованное в char). Если значение count больше длины строки str, вместо параметра count используется длина строки str.
Функции _wcsnset и _mbsnset являются версиями функции _strnset для расширенных и многобайтовых символов. Строковые аргументы и возвращаемое значение _wcsnset являются строками с широкими символами. Строковые аргументы и возвращаемое значение _mbsnset являются многобайтовыми строками. В остальном эти три функции ведут себя идентично.
_mbsnset проверяет его параметры; Если str имеет значение NULL, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если выполнение может быть продолжено, функция _mbsnset возвращает значение NULL и устанавливает параметр errno в значение EINVAL. _strnset и _wcsnset не проверяйте их параметры.
Выходное значение зависит от параметра LC_CTYPE категории языкового стандарта. Дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данного поведения, зависимого от языкового стандарта. Версии с суффиксом _l идентичны, однако они используют переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
| Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
|---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Требования
| Маршрут | Обязательный заголовок |
|---|---|
_strnset |
<string.h> |
_strnset_l |
<tchar.h> |
_wcsnset |
<string.h> или <wchar.h> |
_wcsnset_l |
<tchar.h> |
_mbsnset, _mbsnset_l |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_strnset.c
// compile with: /W3
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 characters of string to be *'s */
printf( "Before: %s\n", string );
_strnset( string, '*', 4 ); // C4996
// Note: _strnset is deprecated; consider using _strnset_s
printf( "After: %s\n", string );
}
Before: This is a test
After: **** is a test
См. также
Обработка строк
Локаль
Интерпретация последовательностей многобайтовых символов
strcat, , wcscat_mbscat
strcmp, , wcscmp_mbscmp
strcpy, , wcscpy_mbscpy
_strset, , _strset_l_wcsset_l_wcsset_mbsset,_mbsset_l