Freigeben über


_mbsnbset_s, _mbsnbset_s_l

Legt die ersten n Bytes einer Multibyte-Zeichenfolge auf ein bestimmtes Zeichen fest. Diese Versionen von _mbsnbset, _mbsnbset_l enthalten Sicherheitserweiterungen, wie unter Sicherheitsfunktionen in der CRT beschrieben.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.

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

Parameter

  • str
    Zu ändernde Zeichenfolge.

  • size
    Die Größe des Zeichenfolgenpuffers.

  • c
    Einzelbyte- oder Multibytezeicheneinstellung.

  • count
    Zahl der festzulegenden Bytes.

  • locale
    Zu verwendendes Gebietsschema.

Rückgabewert

Null wenn erfolgreich; andernfalls ein Fehlercode.

Hinweise

Die Funktionen _mbsnbset_s und _mbsnbset_s_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 Mehrbytezeichen ist und nicht in das letzte Byte vollständig festgelegt werden kann, das von count angegeben wird, wird das letzte Byte mit einem Leerzeichen aufgefüllt. _mbsnbset_s und _mbsnbset_s_l platzieren ein abschließendes NULL-Zeichen nicht am Ende von str.

_mbsnbset_s und _mbsnbset_s_l entsprechen _mbsnset, außer dass es wird count Bytes statt count Zeichen von c fest.

Wenn strNULL ist, oder count ist, wird diese Funktion eine ungültige Parameterausnahme, wie in Parametervalidierung 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, _wsetlocale. Die _mbsnbset_s-Version dieser Funktion verwendet das aktuelle Gebietsschema dieses gebietsschemaabhängigen Verhalten; _mbsnbset_s_l ist die Version identisch, nur dass diese verwendet stattdessen den Parameter, der übergeben wird. Weitere Informationen finden Sie unter Locale.

In C++ wird die Verwendung dieser Funktionen von Vorlagenüberladungen vereinfacht; Überladungen können die Pufferlänge automatisch ableiten und die Anforderung und beseitigen, einem Größenargument anzugeben. Weitere Informationen finden Sie unter Sichere Vorlagenüberladungen.

Die Debugversionen dieser Funktionen füllen zunächst den Puffer mit "0xFD" auf. Mit _CrtSetDebugFillThreshold deaktivieren Sie dieses Verhalten.

Zuordnung generischer Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tcsnset_s

_strnset_s

_mbsnbset_s

_wcsnset_s

_tcsnset_s_l

_strnset_s _l

_mbsnbset_s_l

_wcsnset_s_l

Anforderungen

Routine

Erforderlicher Header

_mbsnbset_s

<mbstring.h>

_mbsnbset_s_l

<mbstring.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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 );
}

Ausgabe

  

.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