_mbsnbset, _mbsnbset_l
Ustaw pierwszy n bajtów łańcuch znaków do określonego znaku.Bezpieczniejsze wersje te funkcje są dostępne; see _mbsnbset_s, _mbsnbset_s_l.
Ważne |
---|
Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsł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 znaków ma być zmieniony.c
Ustawienie jednobajtowych lub wielobajtowych znaków.count
Liczba bajtów, które ma zostać ustawiona.locale
Ustawienia regionalne używane.
Wartość zwracana
_mbsnbsetZwraca wskaźnik do zmienionych ciągu.
Uwagi
_mbsnbset i _mbsnbset_l ustawiają, co najwyżej pierwszy count bajtów str do c.Jeśli count jest większa niż długość str, długość str jest używana zamiast count.Jeśli c jest znaków wielobajtowych i nie można ustawić całość do ostatni bajt jest określony przez count, ostatni bajt jest wypełniane znak puste._mbsnbseti _mbsnbset_l nie umieszcza kończące null na końcu str.
_mbsnbseti _mbsnbset_l jest podobna do _mbsnset, z tym, że ustawia on count bajtów zamiast count znaków z c.
Jeśli str jest NULL lub count wynosi zero, funkcja ta generuje wyjątek nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, errno jest ustawiona na EINVAL i funkcja zwraca NULL.Ponadto jeśli c nie jest prawidłową znaków wielobajtowych, errno jest ustawiona na EINVAL i spacja jest używana zamiast.
Wartość produkcji jest zależny od ustawienia z LC_CTYPE kategorii ustawienie regionalne tzn. zobacz setlocale Aby uzyskać więcej informacji._mbsnbset Wersja tej funkcji używa bieżących ustawień regionalnych tego zachowania zależne od ustawień lokalnych; _mbsnbset_l wersji jest identyczny z tym, aby używać zamiast przekazany parametr ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Uwaga zabezpieczeń ten interfejs API pociąga za sobą potencjalne zagrożenie spowodowane przez problem przepełnienie buforu.Przepełnienie buforu problemy są używanej metody ataku system, skutkujących nieuzasadnione podniesienie uprawnień.Aby uzyskać więcej informacji, zobacz Unikanie przekroczeniem buforu.
Tekst rodzajowy rutynowych mapowania
Rozpoczęto wykonywanie procedury TCHAR.h |
_UNICODE i _MBCS nie zdefiniowany |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
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ływać funkcji C standardowej, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.
Zobacz też
Informacje
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l