共用方式為


_mbsnbset_s _mbsnbset_s_l

設定多位元組字元字串的第一個 n 位元組至指定的字元。 _mbsnbset _mbsnbset_l 這兩個版本有安全性增強,如 安全性功能,則在 CRT 中中所述。

重要

這個應用程式開發介面無法用來在 Windows 執行階段中執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW

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

參數

  • str
    要修改的字串。

  • size
    字串緩衝區的大小。

  • c
    單一位元組或多位元組字元設定。

  • count
    要設定的位元組數。

  • locale
    使用的地區設定。

傳回值

零,如果成功;否則,錯誤碼。

備註

_mbsnbset_s 和 _mbsnbset_s_l 函式設定,最多,第一個 count 位元組 str 設為 c。 如果 count 大於 str的長度,長度 str 而非 count。 如果 c 是多位元組字元,無法完全設定至由 count指定的最後一個位元組,最後一個位元組填補一個空白字元。 _mbsnbset_s 和 _mbsnbset_s_l 不會將結尾的 NULL 在 str。

_mbsnbset_s 和 _mbsnbset_s_l 類別與 _mbsnset類似,不過,它們設定 count 位元組而不是 ccount 字元。

如果 str 是 NULL 或 count 為零,這個函式產生無效參數例外狀況,如 參數驗證中所述。 如果允許繼續執行, errno 會被設置為 EINVAL 且 NULL 會回傳零。 此外,否則,如果 c 不是有效的多位元組字元, errno 設定為 EINVAL ,並使用空格。

輸出值受地區設定的 LC_CTYPE 類別設定的設定所影響;請參閱 setlocale _wsetlocale 以取得詳細資訊。 這個函式 _mbsnbset_s 版本為這個地區設定相關行為使用目前的地區設定; _mbsnbset_s_l 版本相同,但是使用傳遞的地區設定參數。 如需詳細資訊,請參閱地區設定

在 C++ 中,這些函式會由範本多載簡化;多載可自動推斷緩衝區長度進而排除事件的事件引數。 如需詳細資訊,請參閱安全範本多載

這些函式的偵錯版本會先填入 0xFD 緩衝區。 若要停用此行為,請使用 _CrtSetDebugFillThreshold

泛用文字常式對應

Tchar.h 常式

未定義的 _UNICODE 和 _MBCS

已定義 _MBCS

已定義 _UNICODE

_tcsnset_s

_strnset_s

_mbsnbset_s

_wcsnset_s

_tcsnset_s_l

_strnset_s _l

_mbsnbset_s_l

_wcsnset_s_l

需求

程序

必要的標頭檔

_mbsnbset_s

<mbstring.h>

_mbsnbset_s_l

<mbstring.h>

如需相容性詳細資訊,請參閱 相容性

範例

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

  

.NET Framework 對等用法

不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

字串操作 (CRT)

_mbsnbcat _mbsnbcat_l

_strnset、 _strnset_l、 _wcsnset、 _wcsnset_l、 _mbsnset、 _mbsnset_l

_strset、 _strset_l、 _wcsset、 _wcsset_l、 _mbsset、 _mbsset_l