_mbsnbset_s、_mbsnbset_s_l_mbsnbset_s, _mbsnbset_s_l

最初の設定n指定した文字にマルチバイト文字列のバイト数。Sets the first n bytes of a multibyte-character string to a specified character. これらのバージョンの _mbsnbset、_mbsnbset_l は、「CRT のセキュリティ機能」にあるとおり、セキュリティが強化されています。These versions of _mbsnbset, _mbsnbset_l have security enhancements, as described in Security Features in the CRT.

重要

この API は、Windows ランタイムで実行するアプリケーションでは使用できません。This API 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 _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

パラメーターParameters

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

sizesize
文字列バッファーのサイズ。The size of the string buffer.

cc
1 バイトまたはマルチバイト文字の設定。Single-byte or multibyte-character setting.

countcount
設定対象のバイト数。Number of bytes to be set.

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

戻り値Return Value

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

RemarksRemarks

_Mbsnbset_s_mbsnbset_s_l関数設定、最大で 1 つ目カウントバイトのstrc.The _mbsnbset_s and _mbsnbset_s_l functions set, at most, the first count bytes of str to c. 場合カウントがの長さより大きいstrの長さstrの代わりに使用がカウントします。If count is greater than the length of str, the length of str is used instead of count. 場合cマルチバイト文字で指定されている最後のバイトに完全に設定することはできません、カウント、最後のバイトは空白文字で埋められます。If c is a multibyte character and cannot be set entirely into the last byte that's specified by count, the last byte is padded with a blank character. _mbsnbset_s_mbsnbset_s_l終端文字を配置しないでくださいの末尾に null strします。_mbsnbset_s and _mbsnbset_s_l do not place a terminating null at the end of str.

_mbsnbset_s_mbsnbset_s_lのように _mbsnset設定することを除いて、カウントバイトなくカウント文字のcします。_mbsnbset_s and _mbsnbset_s_l resemble _mbsnset, except that they set count bytes rather than count characters of c.

場合strNULLまたはカウントゼロ、」の説明に従って、この関数は無効なパラメーター例外を生成パラメーターの検証.If str is NULL or count is zero, this function generates an invalid parameter exception, as described in Parameter Validation. 続けるには、実行が許可された場合errnoに設定されているEINVAL 、関数を返しますNULLします。If execution is allowed to continue, errno is set to EINVAL and the function returns NULL. また場合、 c有効なマルチバイト文字でないerrnoに設定されているEINVALスペースが代わりに使用します。Also, if c is not a valid multibyte character, errno is set to EINVAL and a space is used instead.

出力値の設定に影響は、 LC_CTYPEロケールのカテゴリの設定; を参照してくださいsetlocale、_wsetlocale詳細についてはします。The output value is affected by the setting of the LC_CTYPE category setting of the locale; see setlocale, _wsetlocale for more information. _Mbsnbset_sこの関数のバージョンは、このロケールに依存する動作の現在のロケールを使用、 _mbsnbset_s_lバージョンは、代わりにロケール パラメーターを使用する点を除いて同じですが渡されます。The _mbsnbset_s version of this function uses the current locale for this locale-dependent behavior; the _mbsnbset_s_l version is identical except that it instead uses the locale parameter that's passed in. 詳細については、「 Locale」を参照してください。For more information, see Locale.

C++ では、テンプレートのオーバーロードによってこれらの関数を簡単に使用できます。オーバーロードでは、バッファー長を自動的に推論できるため、サイズ引数を指定する必要がなくなります。In C++, use of these functions is simplified by template overloads; the overloads can infer buffer length automatically and thereby eliminate the need to specify a size argument. 詳細については、「 Secure Template Overloads」を参照してください。For more information, see Secure Template Overloads.

これらの関数のデバッグ バージョンは、最初にバッファーを 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 and _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 _mbsnbset_s_l_mbsnbset_s_l _wcsnset_s_l_wcsnset_s_l

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_mbsnbset_s_mbsnbset_s <mbstring.h><mbstring.h>
_mbsnbset_s_l_mbsnbset_s_l <mbstring.h><mbstring.h>

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

Example

// 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 );
}

出力Output

Before: This is a test
After:  **** is a test

関連項目See also

文字列操作String Manipulation
_mbsnbcat、_mbsnbcat_l_mbsnbcat, _mbsnbcat_l
_strnset、_strnset_l、_wcsnset、_wcsnset_l、_mbsnset、_mbsnset_l_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l
_strset、_strset_l、_wcsset、_wcsset_l、_mbsset、_mbsset_l_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l