Udostępnij za pośrednictwem


_mbsnbset, _mbsnbset_l

Ustawia pierwszy n bajtów ciąg znaków wielobajtowych do określonego znaku.Bardziej bezpieczne wersje tych funkcji są dostępne w _mbsnbset_s, _mbsnbset_s_l.

Ważna uwagaWażne

Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW.

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 znaków jednobajtowych lub znaków wielobajtowych.

  • count
    Liczba bajtów, które mają być ustawione.

  • locale
    Ustawienia regionalne do użycia.

Wartość zwracana

_mbsnbset zwraca wskaźnik do zmienionego ciągu.

Uwagi

_mbsnbset i _mbsnbset_l funkcje ustawiają, co najwyżej, pierwsze count bajty str do c.Jeśli count jest większa niż długość str, długość str jest używana w zamian count.Jeśli c jest znakiem wielobajtowym i nie może być wyłącznie ustawiony jako ostatni bajt określony przez count, ostatni bajt jest uzupełniany pustym znakiem._mbsnbset i _mbsnbset_lnie umieszczają kończącego znaku null na końcu str.

_mbsnbset i _mbsnbset_ljest podobny do _mbsnset, z tym wyjątkiem, że ustawia bajty count zamiast count znaków c.

Jeśli str wynosi NULL lub count jest zerem, funkcja ta wytwarza wyjątek nieprawidłowego parametru, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, errno jest ustawione jako EINVAL, a funkcja zwraca NULL.Ponadto, jeśli c nie jest prawidłowym znakiem wielobajtowym, errno jest ustawione na EINVAL i spacja jest używana w zamian.

Wartość wyjściowa jest zależna od konfiguracji ustawień kategorii LC_CTYPE ustawień regionalnych; zobacz setlocale, aby uzyskać więcej informacji._mbsnbset wersja tej funkcji używa bieżących ustawień regionalnych dla wszelkich zachowań; _mbsnbset_l wersja jest identyczna, z tą różnicą, że w zamian korzysta z przekazanego parametru ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.

Uwaga dotycząca zabezpieczeń Ten interfejs API wiąże się z potencjalnym zagrożeniem spowodowanym ulepszonym problem przepełnienia buforu.Problemy z przepełnieniem buforu są częstą metodą ataku systemu, powodując nieuzasadnione podniesienie poziomu uprawnień.Aby uzyskać więcej informacji, zobacz unikanie przekroczenia buforu.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tcsnset

_strnset

_mbsnbset

_wcsnset

_tcsnset_l

_strnset_l

_mbsnbset_l

_wcsnset_l

Wymagania

Procedura

Wymagany nagłówek

_mbsnbset

<mbCiąg.h>

_mbsnbset_l

<mbCiąg.h>

Aby uzyskać więcej informacji na temat 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 );
}

Dane wyjściowe

Before: This is a test
After:  **** is a test

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.

Zobacz też

Informacje

Manipulowanie ciągami (CRT)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l