共用方式為


_strnset_s、 _strnset_s_l、 _wcsnset_s、 _wcsnset_s_l、 _mbsnset_s、 _mbsnset_s_l

初始化字串的字元至指定的字元。這些是 _strnset、 _strnset_l、 _wcsnset、 _wcsnset_l、 _mbsnset、 _mbsnset_l 的安全性增強版本,如 安全性功能,則在 CRT 中 中所述。

重要事項重要事項

_mbsnset_s 和 _mbsnset_s_l 不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW

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

參數

  • str
    要修改的字串。

  • numberOfElements
    str 緩衝區的大小。

  • c
    字元設定。

  • count
    要設定的字元數。

  • locale
    使用的地區設定。

傳回值

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

這些函式會驗證其引數。如果 str 不是有效的 NULL 結尾字串或大小引數小於或等於 0,則無效的參數叫用處理常式,如 參數驗證中所述。如果執行允許繼續執行,這些函式會傳回錯誤碼並將 errno 設為該錯誤代碼。如果特定的值並不適用,預設錯誤碼是 EINVAL 。

備註

這些函式設定,最多, str 第一個 count 字元轉換為 c。如果 count 大於 str的大小, str 大小而不是 count。發生錯誤,如果 count 大於 numberOfElements ,而這些參數大於 str的大小。

_wcsnset_s 和 _mbsnset_s都是 _strnset_s寬字元和多位元組字元版本。_wcsnset_s 的字串引數是寬字元字串;該 _mbsnset_s 是多位元組字元字串。這三個函式其餘部分的運作相同。

輸出值受地區設定的 LC_CTYPE類別設定的設定所影響;請參閱 setlocale 以取得詳細資訊。這些函式版本沒有 _l 尾碼此地區設定相關行為使用目前的地區設定;與_l 結尾的版本相同,但使用的地區設定參數。如需詳細資訊,請參閱地區設定

這些函式的偵錯版本會先填入 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

需求

程序

必要的標頭檔

_strnset_s

<string.h>

_strnset_s_l

<tchar.h>

_wcsnset_s

<string.h> 或 <wchar.h>

_wcsnset_s_l

<tchar.h>

_mbsnset_s, _mbsnset_s_l

<mbstring.h>

如需其他相容性資訊,請參閱入門介紹中的 相容性 (Compatibility)

範例

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

.NET Framework 對等用法

System::String::Replace

請參閱

參考

字串操作 (CRT)

地區設定

多位元組字元序列的轉譯工作

strcat,wcscat _mbscat

strcmp,wcscmp _mbscmp

strcpy, wcscpy, _mbscpy

_strset、 _strset_l、 _wcsset、 _wcsset_l、 _mbsset、 _mbsset_l