Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 str cwartość . 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 count NULL 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. Aby uzyskać więcej informacji, zobacz 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 zdefiniowany |
_UNICODE zdefiniowany |
|---|---|---|---|
_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