Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает первые n байты многобайтовой строки заданным символом. Эти версии имеют _mbsnbsetулучшения безопасности, как описано в функциях _mbsnbset_lбезопасности в CRT.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
errno_t _mbsnbset_s(
unsigned char *str,
size_t size,
unsigned int c,
size_t count
);
errno_t _mbsnbset_s_l(
unsigned char *str,
size_t size,
unsigned int c,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbset_s(
unsigned char (&str)[size],
unsigned int c,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbset_s_l(
unsigned char (&str)[size],
unsigned int c,
size_t count,
_locale_t locale
); // C++ only
Параметры
str
Строка, которую требуется изменить.
size
Размер строкового буфера.
c
Однобайтовый или многобайтовый параметр.
count
Число байтов, которые нужно задать.
locale
Используемый языковой стандарт.
Возвращаемое значение
Ноль в случае успешного выполнения; в противном случае — код ошибки.
Замечания
Функции _mbsnbset_s и _mbsnbset_s_l устанавливают максимум первые несколько байт (count) str до c. Если значение count больше длины строки str, вместо параметра str используется длина строки count. Если c является многобайтовый символ и не может быть полностью задан в последний байт, заданный count, последний байт заполняется пустым символом.
_mbsnbset_s и _mbsnbset_s_l не помещайте завершающий значение NULL в конце str.
_mbsnbset_s и _mbsnbset_s_l напоминают _mbsnset за тем исключением, что задают количество байт count, а не количество символов count для параметра c.
Если str значение NULL равно count нулю, эта функция создает недопустимое исключение параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, для errno задается значение EINVAL , и функция возвращает значение NULL. Кроме того, если c не является допустимым многобайтовый символ, задается errno значение, EINVAL а вместо него используется пробел.
Выходное значение зависит от параметра LC_CTYPE категории языкового стандарта. Дополнительные сведения см. в разделе setlocale. Версия _mbsnbset_s этой функции использует текущий языковой стандарт для поведения, зависящего от языкового стандарта; версия _mbsnbset_s_l работает аналогично, но использует переданный языковой стандарт. Дополнительные сведения см. в разделе Locale.
В C++ использование этих функций упрощено шаблонными перегрузками; перегрузки могут определить длину буфера автоматически, устранена необходимость указывать аргумент size. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".
Версии библиотек отладки этих функций сначала заполняют буфер 0xFE. Чтобы отключить это поведение, используйте _CrtSetDebugFillThreshold.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
| Подпрограмма 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 |
Требования
| Маршрут | Обязательный заголовок |
|---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_mbsnbset_s.c
#include <mbstring.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 bytes of string to be *'s */
printf( "Before: %s\n", string );
_mbsnbset_s( string, sizeof(string), '*', 4 );
printf( "After: %s\n", string );
}
Выходные данные
Before: This is a test
After: **** is a test
См. также
Обработка строк
_mbsnbcat, _mbsnbcat_l
_strnset, , _strnset_l_wcsnset_wcsnset_l_mbsnset,_mbsnset_l
_strset, , _strset_l_wcsset_wcsset_l_mbsset,_mbsset_l