_strnset_s、_strnset_s_l、_wcsnset_s、_wcsnset_s_l、_mbsnset_s、_mbsnset_s_l_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l

文字列の文字を所定の書式に初期化します。Initializes characters of a string to a given character. これらの _strnset、_strnset_l、_wcsnset、_wcsnset_l、_mbsnset、_mbsnset_l のバージョンは、「CRT のセキュリティ機能」で説明されているように、セキュリティが強化されています。These versions of _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l have security enhancements, as described in Security Features in the CRT.

重要

_mbsnset_s_mbsnset_s_l Windows ランタイムで実行するアプリケーションでは使用できません。_mbsnset_s and _mbsnset_s_l cannot be used in applications that execute in the Windows Runtime. 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。For more information, see CRT functions not supported in Universal Windows Platform apps.

構文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
);

パラメーターParameters

strstr
変更対象の文字列。String to be altered.

numberOfElementsnumberOfElements
サイズ、 strバッファー。The size of the str buffer.

cc
文字設定。Character setting.

countcount
設定する文字数。Number of characters to be set.

localelocale
使用するロケール。Locale to use.

戻り値Return Value

正常に終了した場合は 0 を返し、それ以外の場合はエラー コードを返します。Zero if successful, otherwise an error code.

これらの関数は、引数を検証します。These functions validate their arguments. 場合strが null で終わる有効な文字列でない、またはサイズ引数が 0 未満、無効なパラメーター ハンドラーが呼び出されます」の説明に従ってパラメーターの検証です。If str is not a valid null-terminated string or the size argument is less than or equal to 0, then the invalid parameter handler is invoked, as described in Parameter Validation. 実行が続行すると、これらの関数の戻り値はエラー コードとセットを許可された場合errnoにそのエラー コード。If execution is allowed to continue, these functions return an error code and set errno to that error code. 既定のエラー コードはEINVALより特定の値が適用されない場合。The default error code is EINVAL if a more specific value does not apply.

RemarksRemarks

これらの関数セット、多くても最初カウントの文字strcします。These functions set, at most, the first count characters of str to c. 場合カウントのサイズより大きいstr、サイズのstrの代わりに使用がカウントIf count is greater than the size of str, the size of str is used instead of count. エラーが発生カウントがより大きいnumberOfElements両方のパラメーターがのサイズを超えるとstrします。An error occurs if count is greater than numberOfElements and both those parameters are greater than the size of str.

_wcsnset_s_mbsnset_sのワイド文字とマルチバイト文字バージョン _strnset_sします。_wcsnset_s and _mbsnset_s are wide-character and multibyte-character versions of _strnset_s. 文字列引数 _wcsnset_sワイド文字は、文字列以外の _mbsnset_sはマルチバイト文字列です。The string argument of _wcsnset_s is a wide-character string; that of _mbsnset_s is amultibyte-character string. それ以外では、これらの関数の動作は同じです。These three functions behave identically otherwise.

出力値は、ロケールの LC_CTYPE カテゴリの設定に影響されます。詳細については、「setlocale」を参照してください。The output value is affected by the setting of the LC_CTYPE category setting of the locale; see setlocale for more information. _l サフィックスが付いていないこれらの関数のバージョンでは、このロケールに依存する動作に現在のロケールを使用します。_l サフィックスが付いているバージョンは、渡されたロケール パラメーターを代わりに使用する点を除いて同じです。The versions of these functions without the _l suffix use the current locale for this locale-dependent behavior; the versions with the _l suffix are identical except that they use the locale parameter passed in instead. 詳細については、「 Locale」を参照してください。For more information, see Locale.

これらの関数のデバッグ バージョンは、最初にバッファーを 0xFD で埋めます。The debug versions of these functions first fill the buffer with 0xFD. この動作を無効にするには、_CrtSetDebugFillThreshold を使用します。To disable this behavior, use _CrtSetDebugFillThreshold.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tcsnset_s_tcsnset_s _strnset_s_strnset_s _mbsnbset_s_mbsnbset_s _wcsnset_s_wcsnset_s
_tcsnset_s_l_tcsnset_s_l _strnset_s_l_strnset_s_l _mbsnbset_s_l_mbsnbset_s_l _wcsnset_s_l_wcsnset_s_l

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_strnset_s_strnset_s <string.h><string.h>
_strnset_s_l_strnset_s_l <tchar.h><tchar.h>
_wcsnset_s_wcsnset_s <string.h> または <wchar.h><string.h> or <wchar.h>
_wcsnset_s_l_wcsnset_s_l <tchar.h><tchar.h>
_mbsnset_s, _mbsnset_s_l_mbsnset_s, _mbsnset_s_l <mbstring.h><mbstring.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.

Example

// 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

関連項目See also

文字列操作String Manipulation
ロケールLocale
マルチバイト文字のシーケンスの解釈Interpretation of Multibyte-Character Sequences
strcat、wcscat、_mbscatstrcat, wcscat, _mbscat
strcmp、wcscmp、_mbscmpstrcmp, wcscmp, _mbscmp
strcpy、wcscpy、_mbscpystrcpy, wcscpy, _mbscpy
_strset、_strset_l、_wcsset、_wcsset_l、_mbsset、_mbsset_l_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l