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


_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l

Инициализирует символы строки определенным символом. В этих версиях _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l усовершенствована безопасность, как описано в разделе Функции безопасности в CRT.

Важно!

_mbsnset_s и _mbsnset_s_l невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.

errno_t _strnset_s(
   char *str,
   size_t numberOfElements,
   int c,
   size_t count 
);
errno_t _strnset_s_l(
   char *str,
   size_t numberOfElements,
   int c,
   size_t count,
   locale_t locale
);
errno_t _wcsnset_s(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   size_t count 
);
errno_t _wcsnset_s_l(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   size_t count,
   _locale_t locale
);
errno_t _mbsnset_s(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   size_t count 
);
errno_t _mbsnset_s_l(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   size_t count,
   _locale_t locale
);

Параметры

  • str
    Строка, которую требуется изменить.

  • numberOfElements
    Размер буфера str.

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

  • count
    Число задаваемых знаков.

  • locale
    Языковой стандарт, который необходимо использовать.

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

Ноль в случае успешного выполнения, в противном случае — код ошибки.

Эти функции проверяют свои аргументы. Если str не является допустимой строкой, завершенной символом null, или аргумент размера меньше или равен 0, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может продолжиться, эти функции возвращают код ошибки и устанавливают errno в этот код ошибки. Кодом ошибки по умолчанию является EINVAL, если не задано более конкретное значение.

Заметки

Эти функции задают, по крайней мере, первые count символов str в c. Если count больше, чем размер str, размер str используется вместо count. Ошибка возникает, если count больше numberOfElements, и оба этих параметра больше размера str.

_wcsnset_s и _mbsnset_s являются версиями функции _strnset_s для расширенных и многобайтовых символов. Строковым аргументом _wcsnset_s является строка расширенных символов; для _mbsnset_s — строка многобайтовых символов . В остальных случаях эти три функции ведут себя идентично.

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

Отладочные версии этих функций сначала заполняют буфер значением 0xFD. Для отключения данного поведения используйте _CrtSetDebugFillThreshold.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

_UNICODE & _MBCS не определены

_MBCS определено

_UNICODE определено

_tcsnset_s

_strnset_s

_mbsnbset_s

_wcsnset_s

_tcsnset_s_l

_strnset_s_l

_mbsnbset_s_l

_wcsnset_s_l

Требования

Подпрограмма

Обязательный заголовок

_strnset_s

<string.h>

_strnset_s_l

<tchar.h>

_wcsnset_s

<string.h> или <wchar.h>

_wcsnset_s_l

<tchar.h>

_mbsnset_s, _mbsnset_s_l

<mbstring.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_strnset_s.c
#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_s( string, sizeof(string), '*', 4 );
   printf( "After:  %s\n", string );
}
  

Эквивалент в .NET Framework

System::String::Replace

См. также

Ссылки

Управление строками (CRT)

Языковой стандарт

Интерпретация последовательностей в многобайтной кодировке

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

strcpy, wcscpy, _mbscpy

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l