_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ż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
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l