Skip to content

C 에서의 문자열 슬라이싱

FoRA edited this page Jan 15, 2021 · 2 revisions
  • strtok(대상문자열, 기준문자);
    • char *strtok(char *_String, char const *_Delimiter);
    • 자른 문자열을 반환, 더 이상 자를 문자열이 없으면 NULL을 반환
#define _CRT_SECURE_NO_WARNINGS    // strtok 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <string.h>    // strtok 함수가 선언된 헤더 파일

int main()
{
    char s1[30] = "The Little Prince";  // 크기가 30인 char형 배열을 선언하고 문자열 할당

    char *ptr = strtok(s1, " ");      // " " 공백 문자를 기준으로 문자열을 자름, 포인터 반환

    while (ptr != NULL)               // 자른 문자열이 나오지 않을 때까지 반복
    {
        printf("%s\n", ptr);          // 자른 문자열 출력
        ptr = strtok(NULL, " ");      // 다음 문자열을 잘라서 포인터를 반환
    }

    return 0;
}
The
Little
Prince

strtok()를 하면 2번째 인수인 ' ' 을 찾아 NULL을 넣어준 다음 잘라낸다. 그 다음 strtok(NULL, " ")를 하면 NULL위치에서 시작하여 공백을 찾은 다음 NULL을 넣어주고 문자열을 잘라낸다.

Reference

C언어 코딩 도장

Clone this wiki locally