_strnset_s
,_strnset_s_l
, _wcsnset_s
, _wcsnset_s_l
, _mbsnset_s
, _mbsnset_s_l
_tcsnset_s
, _tcsncset_s
_tcsncset_s_l
문자열의 문자를 지정된 문자로 초기화합니다. CRT의 _strnset_l
_strnset
보안 기능에 설명된 대로 이러한 버전의 < _mbsnset_l
_wcsnset
_wcsnset_l
_mbsnset
a0/>에는 보안 기능이 향상되었습니다.
Important
Windows 런타임에서 실행되는 애플리케이션에서는 _mbsnset_s
및 _mbsnset_s_l
을 사용할 수는 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.
, _tcsnset_s
_tcsnset_s_l
및 _tcsncset_s
_tcsncset_s_l
제네릭 텍스트 함수 매핑을 참조하세요.
구문
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
사용할 로캘입니다.
반환 값
정상적으로 실행되는 경우 0이고 그렇지 않으면 오류 코드입니다.
이러한 함수는 해당 인수의 유효성을 검사합니다. 유효한 null로 끝나는 문자열이 아니거나 크기 인수가 0보다 작거나 같은 경우 str
매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우 이러한 함수는 오류 코드를 반환하고 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
접미사가 있는 버전은 전달된 로캘 매개 변수를 대신 사용하는 경우를 제외하고는 동일합니다. 자세한 내용은 Locale을 참조하세요.
이러한 함수의 디버그 라이브러리 버전은 먼저 버퍼를 으로 0xFE
채웁니다. 이 동작을 사용하지 않도록 설정하려면 .를 사용합니다 _CrtSetDebugFillThreshold
.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 함수 매핑
열의 tchar.h
함수는 컴파일 시간에 정의된 문자 집합에 따라 다른 열의 함수에 매핑됩니다.
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 |
_tcsncset_s |
_strnset_s |
_mbsnset_s |
_wcsnset_s |
_tcsncset_s_l |
_strnset_s_l |
_mbsnset_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> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// 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
참고 항목
문자열 조작
Locale
멀티바이트 문자 시퀀스 해석
strcat
, , wcscat
_mbscat
strcmp
, , wcscmp
_mbscmp
strcpy
, , wcscpy
_mbscpy
_strset
, _strset_l
, _wcsset
, _wcsset_l
, _mbsset
_mbsset_l