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


_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

Инициализирует символы строки в конкретный символ. Существуют более безопасные версии этих функций; 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, _wcsset_l, _mbsset, _mbsset_l