_mbsnbset, _mbsnbset_l
Legt die ersten n Bytes einer Multibyte-Zeichenfolge auf ein bestimmtes Zeichen fest. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter _mbsnbset_s, _mbsnbset_s_l.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
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
);
Parameter
str
Zu ändernde Zeichenfolge.c
Einzelbyte- oder Multibytezeicheneinstellung.count
Zahl der festzulegenden Bytes.locale
Zu verwendendes Gebietsschema.
Rückgabewert
_mbsnbset gibt einen Zeiger auf die geänderte Zeichenfolge zurück.
Hinweise
Die Funktionen _mbsnbset und _mbsnbset_l legen höchstens die ersten count Bytes von str auf c fest. Wenn count größer als die Länge von str ist, wird die Länge von str anstelle von count verwendet. Wenn c ein Multibytezeichen ist und nicht vollständig auf das von count angegebene letzte Byte festgelegt werden kann, dann wird das letzte Byte mit einem Leerzeichen aufgefüllt. _mbsnbset und _mbsnbset_l abgelegt ein abschließendes NULL-Zeichen nicht am Ende von str.
_mbsnbset und _mbsnbset_l ähnelt _mbsnset, allerdings wird legt count Bytes statt count Zeichen von c fest.
Wenn strNULL oder count Null ist, generiert diese Funktion eine Ausnahme wegen eines ungültigen Parameters, wie inParametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL gesetzt, und die Funktion gibt NULL zurück. Wenn c kein gültiges Multibytezeichen ist, wird errno auf EINVAL festgelegt und ein Leerzeichen wird stattdessen verwendet.
Der Ausgabewert ist von der LC_CTYPE-Kategorieneinstellung des Gebietsschemas betroffen; weitere Informationen finden Sie unter setlocale. Die _mbsnbset-Version dieser Funktion verwendet das aktuelle Gebietsschema für dieses vom Gebietsschema abhängige Verhalten. Die _mbsnbset_l-Version ist beinahe identisch, verwendet jedoch stattdessen den ihr übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.
Sicherheitshinweis Diese API stellt eine mögliche Bedrohung aufgrund eines Pufferüberlaufproblems dar. Pufferüberlaufprobleme werden häufig bei Systemangriffen eingesetzt, da sie zu einer unbefugten Ausweitung der Berechtigungen führen. Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.
Zuordnung generischer Textroutinen
Tchar.h-Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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 );
}
Ausgabe
Before: This is a test
After: **** is a test
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.
Siehe auch
Referenz
Zeichenfolgenbearbeitung (CRT)
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l