_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 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ć w całości na ostatni bajt określony przez count, ostatni bajt jest wypełniony pustym znakiem. _mbsnbseti _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 countNULL 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. W celu uzyskania więcej informacji, zobacz następujący temat: 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 Zdefiniowane _UNICODE Zdefiniowane
_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