Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Задает первые n байты многобайтовой строки заданным символом. Доступны более безопасные версии этих функций; see _mbsnbset_s, _mbsnbset_s_l.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
unsigned char *_mbsnbset(
unsigned char *str,
unsigned int c,
size_t count
);
unsigned char *_mbsnbset_l(
unsigned char *str,
unsigned int c,
size_t count,
_locale_t locale
);
Параметры
str
Строка, которую требуется изменить.
c
Однобайтовый или многобайтовый параметр.
count
Число байтов, которые нужно задать.
locale
Используемый языковой стандарт.
Возвращаемое значение
Функция _mbsnbset возвращает указатель на измененную строку.
Замечания
Функции _mbsnbset и _mbsnbset_l устанавливают максимум первые несколько байт (count) str до c. Если значение count больше длины строки str, вместо параметра count используется длина строки str. Если c является многобайтовый символ и не может быть полностью задан в последний байт, указанный, countпоследний байт заполняется пустым символом. _mbsnbset и _mbsnbset_l не помещая завершающий значение NULL в конце str.
_mbsnbset и _mbsnbset_l аналогичен _mbsnset, за исключением того, что он задает count байты, а не count символы c.
Если str значение NULL count равно нулю, эта функция создает недопустимое исключение параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, для errno задается значение EINVAL , и функция возвращает значение NULL. Кроме того, если c не является допустимым многобайтовый символ, задается EINVAL значение, errno а вместо него используется пробел.
Выходное значение зависит от параметра LC_CTYPE категории языкового стандарта. Дополнительные сведения см. в разделе setlocale. Версия этой функции использует текущий языковой стандарт для этого поведения, зависящего от языкового стандарта. _mbsnbset_l Версия _mbsnbset идентична, за исключением того, что вместо этого используется переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
Примечание о безопасности. Эти функции предполагают потенциальную угрозу, связанную с проблемой переполнения буфера. Проблемы переполнения буфера — это распространенный метод атак на системы, который приводит к несанкционированному повышению уровня прав. Дополнительные сведения см. в разделе "Избегание переполнения буфера".
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
| Подпрограмма Tchar.h | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
|---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Требования
| Маршрут | Обязательный заголовок |
|---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_mbsnbset.c
// compile with: /W3
#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( string, '*', 4 ); // C4996
// Note; _mbsnbset is deprecated; consider _mbsnbset_s
printf( "After: %s\n", string );
}
Выходные данные
Before: This is a test
After: **** is a test
См. также
Обработка строк
_mbsnbcat, _mbsnbcat_l
_strnset, , _strnset_l_wcsnset_l_wcsnset_mbsnset,_mbsnset_l
_strset, , _strset_l_wcsset_l_wcsset_mbsset,_mbsset_l