Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Legt die ersten n Bytes einer Multibyte-Zeichenfolge auf ein angegebenes Zeichen fest. Diese Versionen von _mbsnbset, _mbsnbset_l verfügen über Sicherheitsverbesserungen, wie in sicherheitsfeatures im CRT beschrieben.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
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 es sich um ein Multibytezeichen handelt und nicht vollständig auf das letzte byte festgelegt werden kann, countwird das letzte Byte mit einem leeren Zeichen aufgefüllt.
_mbsnbset_s und _mbsnbset_s_l platzieren Sie keinen endenden Nullwert am Ende von str.
_mbsnbset_s und _mbsnbset_s_l ähneln _mbsnset mit der Ausnahme, dass sie count-Bytes statt count-Zeichen von c festlegen.
Wenn str diese Funktion null ist NULL oder count ist, generiert diese Funktion eine ungültige Parameter-Ausnahme, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL festgelegt, und die Funktion gibt NULLbeschrieben.
c Wenn es sich nicht um ein gültiges Multibytezeichen handelt, errno wird stattdessen ein Leerzeichen festgelegtEINVAL, und es wird stattdessen ein Leerzeichen verwendet.
Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieeinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale. Die _mbsnbset_s-Version dieser Funktion verwendet das aktuelle Gebietsschema auf dieses vom Gebietsschema abhängige Verhalten. Die _mbsnbset_s_l-Version ist beinahe identisch, abgesehen davon, dass es stattdessen den ihr übergebenen Gebietsschemaparameter verwendet. Weitere Informationen finden Sie unter Locale.
Die Verwendung dieser Funktionen in C++ wird durch Vorlagenüberladungen vereinfacht. Überladungen können automatisch die Pufferlänge ableiten, sodass kein Größenargument angegeben werden muss. Weitere Informationen finden Sie unter Secure Template Overloads.
Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Verwenden Sie _CrtSetDebugFillThresholdzum Deaktivieren dieses Verhaltens .
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping 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
Before: This is a test
After: **** is a test
Siehe auch
Zeichenfolgenbearbeitung
_mbsnbcat, _mbsnbcat_l
_strnset, , _strnset_l_wcsnset, _wcsnset_l, , _mbsnset_mbsnset_l
_strset, , _strset_l_wcsset, _wcsset_l, , _mbsset_mbsset_l