Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ustawia pierwsze n bajtów ciągu wielobajtowego na określony znak. Te wersje programu _mbsnbset_mbsnbset_lmają ulepszenia zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
Ważne
Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.
Składnia
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
Parametry
str
Ciąg do zmiany.
size
Rozmiar buforu ciągu.
c
Ustawienie jednobajtowego lub wielobajtowego znaku.
count
Liczba bajtów do ustawienia.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
Zero w przypadku powodzenia; w przeciwnym razie kod błędu.
Uwagi
Funkcje _mbsnbset_s i _mbsnbset_s_l ustawiają co najwyżej pierwsze count bajty na strcwartość . Jeśli count wartość jest większa niż długość str, używana jest długość str elementu zamiast count. Jeśli c jest znakiem wielobajtowym i nie można go ustawić całkowicie w ostatni bajt określony przez countparametr , ostatni bajt jest dopełniany pustym znakiem.
_mbsnbset_si _mbsnbset_s_l nie umieszczaj wartości null zakończenia na końcu .str
_mbsnbset_s i _mbsnbset_s_l przypominają _mbsnset, z tą różnicą, że ustawiają count bajty, a nie count znaki c.
Jeśli str wartość jest NULLcount równa zero, ta funkcja generuje nieprawidłowy wyjątek parametru, zgodnie z opisem w temacie Walidacja parametru. Jeśli wykonywanie jest dozwolone do kontynuowania, jest ustawione na errno , EINVAL a funkcja zwraca wartość NULL. Ponadto, jeśli c nie jest prawidłowym znakiem wielobajtowym, jest ustawiona na errno , EINVAL a zamiast tego jest używana spacja.
Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. Aby uzyskać więcej informacji, zobacz setlocale. Wersja _mbsnbset_s tej funkcji używa bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych; _mbsnbset_s_l wersja jest identyczna, z tą różnicą, że zamiast tego używa parametru ustawień regionalnych, który jest przekazywany. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
W języku C++użycie tych funkcji jest uproszczone przez przeciążenia szablonów; przeciążenia mogą automatycznie wnioskować długość buforu, a tym samym wyeliminować konieczność określenia argumentu rozmiaru. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.
Wersje biblioteki debugowania tych funkcji najpierw wypełniają bufor 0xFE. Aby wyłączyć to zachowanie, użyj polecenia _CrtSetDebugFillThreshold.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
| Procedura tchar.h |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
|---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
Wymagania
| Procedura | Wymagany nagłówek |
|---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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 );
}
Wynik
Before: This is a test
After: **** is a test
Zobacz też
Manipulowanie ciągami
_mbsnbcat, _mbsnbcat_l
_strnset, , _strnset_l, _wcsnset, _wcsnset_l, , _mbsnset_mbsnset_l
_strset, , _strset_l, _wcsset, _wcsset_l, , _mbsset_mbsset_l