strtok_s 예제

Posted by abitou on Αυγ 02, 2019

strtok_s를 예제와 함께 사용하면 __s1에 있는 첫 번째 토큰에 대한 포인터를 반환합니다. NULL 포인터는 토큰이 더 이상 없거나 런타임 제약 조건 위반이 있을 때 반환됩니다. 참고: strtok_s에 대한 호출은 strtok_s를 사용하는 함수 호출로 중첩될 수 없습니다. 또한 소스 문자열의 여러 연속 구분 기호는 하나로 처리됩니다. 예제에서는 두 번째 쉼표가 무시됩니다. strtok_s 함수는 토큰화되는 문자열 외부에 저장하지 않도록 보호하고 런타임 제약 조건을 확인하여 POSIX strtok_r 함수와 다릅니다. strtok_s에 대한 첫 번째 호출에서 함수는 선행 구분 기호를 건너뛰고 str의 첫 번째 토큰에 대한 포인터를 반환하여 null 문자로 토큰을 종료합니다. strtok_s에 대한 일련의 호출을 통해 나머지 str에서 더 많은 토큰을 나눌 수 있습니다. strtok_s에 대한 각 호출은 해당 호출에서 반환된 토큰 이후에 null 문자를 삽입하여 str을 수정합니다. 컨텍스트 포인터는 읽을 문자열과 문자열에서 다음 토큰을 읽을 위치를 추적합니다. str에서 다음 토큰을 읽으려면 str tos인수에 대한 NULL 값을 사용하여 strtok_s를 호출하고 동일한 컨텍스트 매개 변수를 전달합니다. NULL str 인수로 인해 strtok_s는 수정된 str에서 다음 토큰을 검색합니다. 구분 기호 인수는 구분 기호 집합이 다를 수 있도록 한 호출에서 다음 호출로 모든 값을 취할 수 있습니다.

이 프로그램에서 생성된 출력의 예는 다음과 같은 데, strtok가 토큰에 새 메모리를 할당하지 않으므로 소스 문자열을 수정합니다. 즉, 위의 예에서는 문자열 src가 조작되어 strtok 호출에 의해 반환되는 포인터에서 참조되는 토큰을 생성합니다. 즉, 소스 문자열은 const일 수 없으므로 문자열 리터럴이 될 수 없습니다. 또한 구분 바이트의 ID가 손실됨을 의미합니다(예에서는 «»와 «!»가 소스 문자열에서 효과적으로 삭제되며 일치하는 구분 기호 문자를 알 수 없습니다). C는 문자열을 일부 구분 기호로 분할하기 위한 strtok() 및 strtok_r() 두 함수를 제공합니다. 문자열을 분할하는 것은 매우 일반적인 작업입니다. 예를 들어 파일에서 항목의 쉼표로 구분된 목록이 있으며 배열의 개별 항목을 원합니다. strtok_s에 대한 첫 번째 호출은 __s1의 첫 번째 토큰의 첫 번째 문자에 대한 포인터를 반환하고 반환된 토큰 바로 다음에 __s1에 null 문자를 씁니다. 첫 번째 인수에 대해 null을 가진 후속 호출은 토큰이 남아 있지 않을 때까지 __s1 문자열을 통해 작동합니다.

strtok_s는 문자열 __s1이 구분 기호 문자열 __s2에서 하나 이상의 문자 범위로 구분된 0개 이상의 텍스트 토큰 시퀀스로 구성된것으로 간주합니다.

Comments are closed.

Ο καιρός

ar8ra

advertisement