_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.
Wichtig |
---|
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)
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l