_strnset_s
, _strnset_s_l
, _wcsnset_s
, _wcsnset_s_l
, _mbsnset_s
, _mbsnset_s_l
Initialisiert Zeichen einer Zeichenfolge auf ein angegebenes Zeichen. Diese Versionen von _strnset
, , _wcsnset
_strnset_l
, _wcsnset_l
, _mbsnset
haben _mbsnset_l
Sicherheitsverbesserungen, wie in den Sicherheitsfeatures in der CRT beschrieben.
Wichtig
_mbsnset_s
und _mbsnset_s_l
können 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 _strnset_s(
char *str,
size_t numberOfElements,
int c,
size_t count
);
errno_t _strnset_s_l(
char *str,
size_t numberOfElements,
int c,
size_t count,
_locale_t locale
);
errno_t _wcsnset_s(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count
);
errno_t _wcsnset_s_l(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count,
_locale_t locale
);
errno_t _mbsnset_s(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count
);
errno_t _mbsnset_s_l(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count,
_locale_t locale
);
Parameter
str
Zu ändernde Zeichenfolge.
numberOfElements
Die Größe des str
-Puffers.
c
Zeicheneinstellung.
count
Zahl der festzulegenden Zeichen.
locale
Zu verwendendes Gebietsschema.
Rückgabewert
Null, wenn erfolgreich, andernfalls ein Fehlercode.
Diese Funktionen überprüfen ihre Argumente. Wenn str
es sich nicht um eine gültige null-beendete Zeichenfolge handelt oder das Größenargument kleiner oder gleich 0 ist, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen einem Fehlercode zurück und legen errno
auf diesen Fehlercode fest. Der Standardfehlercode ist EINVAL
, wenn ein spezifischerer Wert nicht angewendet wird.
Hinweise
Diese Funktionen legen höchstens die ersten count
-Zeichen von str
auf c
fest. Wenn count
größer als die Größe von str
ist, wird die Größe von str
anstelle von count
verwendet. Ein Fehler tritt auf, wenn count
größer als numberOfElements
ist, und diese beiden Parameter größer als die Größe von str
sind.
_wcsnset_s
und _mbsnset_s
sind Breitzeichen- und Multibytezeichenversionen von _strnset_s
. Das Zeichenfolgenargument ist _wcsnset_s
eine Zeichenfolge mit breitem Zeichen, bei der es _mbsnset_s
sich um eine Multibyte-Zeichenfolge handelt. Diese drei Funktionen verhalten sich andernfalls identisch.
Der Ausgabewert wird durch die Einstellung der LC_CTYPE
Kategorieeinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale
. Die Versionen dieser Funktionen ohne das _l
-Suffix verwenden das aktuelle Gebietsschema für dieses vom Gebietsschema abhängige Verhalten; die Versionen mit dem _l
-Suffix sind beinahe identisch, verwenden jedoch stattdessen den ihnen übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.
Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Verwenden Sie _CrtSetDebugFillThreshold
zum Deaktivieren dieses Verhaltens .
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Generische Textroutinzuordnungen
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 |
---|---|
_strnset_s |
<string.h> |
_strnset_s_l |
<tchar.h> |
_wcsnset_s |
<string.h> oder <wchar.h> |
_wcsnset_s_l |
<tchar.h> |
_mbsnset_s , _mbsnset_s_l |
<mbstring.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_strnset_s.c
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 characters of string to be *'s */
printf( "Before: %s\n", string );
_strnset_s( string, sizeof(string), '*', 4 );
printf( "After: %s\n", string );
}
Before: This is a test
After: **** is a test
Siehe auch
Zeichenfolgenmanipulation
Gebietsschema
Interpretation von Multibyte-Zeichensequenzen
strcat
, wcscat
, _mbscat
strcmp
, wcscmp
, _mbscmp
strcpy
, wcscpy
, _mbscpy
_strset
, _strset_l
, _wcsset
, _wcsset_l
, _mbsset
, _mbsset_l
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für