strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l

다음 토큰을 현재 로캘 또는 전달 된 로캘을 사용 하 여 문자열을 찾습니다.이러한 버전의 수 strtok, _strtok_l, wcstok, _wcstok_l, _mbstok, _mbstok_l 에 설명 된 대로 보안 향상 기능을 CRT의 보안 기능.

중요중요

_mbstok_s및 _mbstok_s_l Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수.

char *strtok_s(
char *strToken,
const char *strDelimit,
   char **context
);
char *_strtok_s_l(
char *strToken,
const char *strDelimit,
   char **context,
_locale_tlocale
);
wchar_t *wcstok_s(
wchar_t *strToken,
const wchar_t *strDelimit, 
   wchar_t**context
);
wchar_t *_wcstok_s_l(
wchar_t *strToken,
const wchar_t *strDelimit, 
   wchar_t**context,
_locale_tlocale
);
unsigned char *_mbstok_s(
unsigned char*strToken,
const unsigned char *strDelimit, 
   char **context
);
unsigned char *_mbstok_s(
unsigned char*strToken,
const unsigned char *strDelimit, 
   char **context,
_locale_tlocale
);

매개 변수

  • strToken
    토큰 또는 토큰을 포함 하는 문자열입니다.

  • strDelimit
    구분 기호 문자 집합입니다.

  • context
    호출 간에 위치 정보를 저장 하는 데 사용strtok_s

  • locale
    사용 하는 로캘.

반환 값

다음 토큰에 대 한 포인터를 반환 strToken.반환 NULL 없음 더 많은 토큰을 발견 합니다.각 호출 수정 strToken 대체 하 여는 NULL 문자 뒤에 있는 반환 된 토큰을 발생 하는 첫 번째 구분 합니다.

오류 조건

strToken

strDelimit

context

반환 값

errno

NULL

any

null 포인터에 대 한 포인터

NULL

EINVAL

any

NULL

any

NULL

EINVAL

any

any

NULL

NULL

EINVAL

경우 strToken 는 NULL 오류가 없습니다 하지만 컨텍스트 잘못 된 컨텍스트 포인터에 대 한 포인터입니다.

설명

strtok_s 함수에서 다음 토큰을 찾아 strToken.문자 집합이 strDelimit 에서 찾을 수 있는 토큰의 구분을 지정 strToken 에 대 한 현재 호출 합니다.wcstok_s및 _mbstok_s 와이드 및 멀티 바이트 문자 버전의 strtok_s.인수 및 반환 값을 wcstok_s 및 _wcstok_s_l 와이드 문자 문자열입니다. _mbstok_s 및 _mbstok_s_l 멀티 바이트 문자 문자열입니다.이러한 세 가지 함수 그렇지에 동일 하 게 동작 합니다.

이 함수 매개 변수의 유효성을 검사 합니다.오류 조건 테이블에서 오류가 발생 하면 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실행을 계속 허용 되 면 이러한 함수를 설정 errno 에 EINVAL 를 반환 하 고 NULL.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_Unicode가 정의

_tcstok_s

strtok_s

_mbstok_s

wcstok_s

_tcstok_s_l

_strtok_s_l

_mbstok_s_l

_wcstok_s_l

첫 번째 호출에서 strtok_s 함수 앞의 구분 기호를 생략 하 고 첫 번째 토큰에 대 한 포인터를 반환 strToken, 토큰에 null 문자를 종료 합니다.나머지 부분에서 더 많은 토큰을 나눌 수 있습니다 strToken 일련의 호출 하 여 strtok_s.각 호출에 strtok_s 수정 strToken 호출에 의해 반환 되는 토큰 뒤 null 문자를 삽입 합니다.context 읽고 문자열 및 문자열에 다음 토큰을 읽을 수 있는 포인터를 추적 합니다.로부터 다음 토큰을 읽을 수 strToken, 호출 strtok_s 에 NULL 값은 strToken 인수를 동일한 전달 context 매개 변수.NULLstrToken 인수 원인 strtok_s 에서 수정한 다음 토큰을 검색 하려면 strToken. strDelimit 인수 구분 기호 집합이 다를 수 있도록 값에서 다음 호출을 수행할 수 있습니다.

이후는 context 매개 변수 대체에 사용 되는 정적 버퍼 strtok 및 _strtok_l, 동일한 스레드에서 동시에 두 개의 문자열을 구문 분석 하는 것이 가능 합니다.

출력 값의 설정에 의해 영향을 받지는 LC_CTYPE 범주 설정 로케일입니다. 볼 setlocale 에 대 한 자세한 내용은.없이 이러한 함수 버전을 _l 접미사는 현재 로케일에 대 한이 로케일 종속 동작; 사용 버전으로는 _l 접미사는 대신 전달 로캘 매개 변수를 사용 하는 경우를 제외 하 고 동일 합니다.자세한 내용은 로캘을 참조하십시오.

요구 사항

루틴

필수 헤더

strtok_s

<string.h>

_strtok_s_l

<string.h>

wcstok_s,

_wcstok_s_l

<string.h> 또는 <wchar.h>

_mbstok_s,

_mbstok_s_l

<mbstring.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_strtok_s.c
// In this program, a loop uses strtok_s
// to print all the tokens (separated by commas
// or blanks) in two strings at the same time.
//

#include <string.h>
#include <stdio.h>

char string1[] =
    "A string\tof ,,tokens\nand some  more tokens";
char string2[] =
    "Another string\n\tparsed at the same time.";
char seps[]   = " ,\t\n";
char *token1 = NULL;
char *token2 = NULL;
char *next_token1 = NULL;
char *next_token2 = NULL;

int main( void )
{
    printf( "Tokens:\n" );

    // Establish string and get the first token:
    token1 = strtok_s( string1, seps, &next_token1);
    token2 = strtok_s ( string2, seps, &next_token2);

    // While there are tokens in "string1" or "string2"
    while ((token1 != NULL) || (token2 != NULL))
    {
        // Get next token:
        if (token1 != NULL)
        {
            printf( " %s\n", token1 );
            token1 = strtok_s( NULL, seps, &next_token1);
        }
        if (token2 != NULL)
        {
            printf("        %s\n", token2 );
            token2 = strtok_s (NULL, seps, &next_token2);
        }
    }
}
  
  

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출 하려면 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

문자열 조작 (CRT)

로캘

멀티 바이트 문자 시퀀스로 해석

strcspn, wcscspn, _mbscspn, _mbscspn_l

strspn, wcsspn, _mbsspn, _mbsspn_l