Freigeben über


_mbsnbset_s, _mbsnbset_s_l

Legt die ersten n Bytes einer Mehrbyte-Zeichenfolge zu einem angegebenen Zeichen fest.Diese Versionen von _mbsnbset, _mbsnbset_l haben Sicherheitserweiterungen, wie in Sicherheitsfeatures im CRT beschrieben.

Wichtiger HinweisWichtig

Diese API kann nicht in den Anwendungen verwendet werden, die in Windows-Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /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

Parameter

  • str
    Geändert werden Zeichenfolge.

  • size
    Die Größe des Zeichenfolgenpuffers.

  • c
    Einzelbyte- oder Mehrbytezeicheneinstellung.

  • count
    Zahl festgelegt werden Bytes.

  • locale
    Zu verwendende Gebietsschema.

Rückgabewert

Null erfolgreich, wenn andernfalls ein Fehlercode.

Hinweise

_mbsnbset_s und _mbsnbset_s_l funktioniert Satz höchstens die ersten count Bytes von str zu c.Wenn count größer als die Länge von str ist, wird die Länge von str anstelle count verwendet.Wenn c ein Mehrbytezeichen ist und nicht in das letzte Byte vollständig festgelegt werden, die 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 ähneln _mbsnset, außer dass sie legen count Bytes statt count Zeichen aus c fest.

Wenn strNULL ist, oder count null ist, generiert diese Funktion eine ungültige Parameterausnahme, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, wird errno zu EINVAL festgelegt und die Funktion gibt NULL zurück.Wenn c kein gültiges Mehrbytezeichen ist, wird errno zu EINVAL festgelegt und ein Leerzeichen wird stattdessen verwendet.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieneinstellung des Gebietsschemas betroffen; setlocale, _wsetlocale finden Sie weitere Informationen.Die _mbsnbset_s-Version dieser Funktion verwendet das aktuelle Gebietsschema für dieses Verhalten abhängig; die _mbsnbset_s_l-Version ist identisch, allerdings verwendet stattdessen den Gebietsschemaparameter, der übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.

In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht; die Überladungen können Pufferlänge automatisch ableiten und die Anforderung insofern vermeiden, ein Größenargument anzugeben.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.

Die Debugversionen dieser Funktionen füllen zuerst den Puffer mit den Wert aus.Um dieses Verhalten zu deaktivieren, verwenden Sie _CrtSetDebugFillThreshold.

Zuordnung generische 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 Kompatibilitätsinformation 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. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. 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