Freigeben über


_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)

_mbsnbcat, _mbsnbcat_l

_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l