_mbsnbset
, _mbsnbset_l
Ustawia pierwsze n bajtów ciągu wielobajtowego na określony znak. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz _mbsnbset_s
, _mbsnbset_s_l
.
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
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
);
Parametry
str
Ciąg do zmiany.
c
Ustawienie jednobajtowego lub wielobajtowego znaku.
count
Liczba bajtów do ustawienia.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
_mbsnbset
Zwraca wskaźnik do zmienionego ciągu.
Uwagi
Funkcje _mbsnbset
i _mbsnbset_l
ustawiają co najwyżej pierwsze count
bajty na str
c
wartość . 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ć w całości na ostatni bajt określony przez count
, ostatni bajt jest wypełniony pustym znakiem. _mbsnbset
i _mbsnbset_l
nie umieszcza wartości null zakończenia na końcu .str
_mbsnbset
i _mbsnbset_l
jest podobny do _mbsnset
, z tą różnicą, że ustawia count
bajty, a nie count
znaki c
.
Jeśli str
wartość jest count
NULL
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 EINVAL
, errno
a funkcja zwraca wartość NULL
. Ponadto, jeśli c
nie jest prawidłowym znakiem wielobajtowym, jest ustawiona na EINVAL
, errno
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
tej funkcji używa bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych; _mbsnbset_l
wersja jest identyczna, z tą różnicą, że używa parametru ustawień regionalnych przekazanych zamiast. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Uwaga zabezpieczeń Ten interfejs API powoduje potencjalne zagrożenie spowodowane przez problem z przepełnieniem buforu. Problemy z przepełnieniem buforu są częstą metodą ataku systemowego, co powoduje nieuzasadnione podniesienie uprawnień. Aby uzyskać więcej informacji, zobacz Unikanie przekroków buforu.
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 |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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 );
}
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