_mbsnbset_s, _mbsnbset_s_l
Ustawia pierwszy n bajtów łańcuch znaków do określonego znaku.Te wersje _mbsnbset, _mbsnbset_l mieć rozszerzenia zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.
Ważne |
---|
Ten interfejs API nie można używać w aplikacji, których wykonywanie w Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW. |
errno_t _mbsnbset_s(
unsigned char *str,
size_t size,
unsigned int c,
size_t count
);
errno_t _mbsnbset_s_l(
unsigned char *str,
size_t size,
unsigned int c,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbset_s(
unsigned char (&str)[size],
unsigned int c,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbset_s_l(
unsigned char (&str)[size],
unsigned int c,
size_t count,
_locale_t locale
); // C++ only
Parametry
str
Ciąg znaków ma być zmieniony.size
Rozmiar buforu ciągów.c
Ustawienie jednobajtowych lub wielobajtowych znaków.count
Liczba bajtów, które ma zostać ustawiona.locale
Ustawienia regionalne używane.
Wartość zwracana
Zero, jeśli kończy się pomyślnie; w przeciwnym razie kod błędu.
Uwagi
_mbsnbset_s i _mbsnbset_s_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, określonej przez count, ostatni bajt jest wypełniane znak puste._mbsnbset_si _mbsnbset_s_l nie należy umieszczać kończące null na końcu str.
_mbsnbset_si _mbsnbset_s_l przypominają _mbsnset, z tym, że ustanowią w 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, _wsetlocale Aby uzyskać więcej informacji._mbsnbset_s Wersja tej funkcji używa bieżących ustawień regionalnych tego zachowania zależne od ustawień lokalnych; _mbsnbset_s_l wersji jest identyczny z tym, że zamiast tego wykorzystuje parametr ustawień regionalnych, który jest przekazywana.Aby uzyskać więcej informacji, zobacz Regionalne.
W języku C++ korzystanie z tych funkcji jest uproszczony przez przeciążenia szablonu; overloads można automatycznie rozpoznać długość buforu, a tym samym eliminują potrzebę określono argument rozmiar.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.
Wersje do debugowania tych funkcji najpierw wypełnić bufor z 0xFD.Aby wyłączyć to zachowanie, należy użyć _CrtSetDebugFillThreshold.
Tekst rodzajowy rutynowych mapowania
Rozpoczęto wykonywanie procedury TCHAR.h |
_UNICODE i _MBCS nie zdefiniowany |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s _l |
_mbsnbset_s_l |
_wcsnset_s_l |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Informacji dotyczących zgodności, zobacz Zgodność.
Przykład
// crt_mbsnbset_s.c
#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_s( string, sizeof(string), '*', 4 );
printf( "After: %s\n", string );
}
Dane wyjściowe
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