_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, _mbsnsethaben _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 _CrtSetDebugFillThresholdzum 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