_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l
Инициализирует символы строки определенным символом. Существуют более безопасные версии этих функций; см. раздел _strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l.
Важно!
_mbsnset и _mbsnset_l невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.
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, длина str используется вместо count.
_wcsnset и _mbsnset являются версиями функции _strnset для расширенных и многобайтовых символов. Строковые аргументы и возвращаемое значение _wcsnset представляют собой двухбайтовые строки; аргументы и возвращаемое значение _mbsnset представляют собой многобайтовые строки. В остальных случаях эти три функции ведут себя идентично.
_mbsnset проверяет его параметры; если str является пустым указателем, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, то _mbsnset возвращает NULL и устанавливает errno в EINVAL. _strnset и _wcsnset не проверяют свои параметры.
Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта; версии с суффиксом_l идентичны, за исключением того, что они используют переданный параметр языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.
Универсальное текстовое сопоставление функций
Подпрограмма 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 );
}