C strtok() 문자열을 문자로 자르기 함수
C언어에서 문자열을 문자로 자르는 함수입니다.
- 헤더: string.h
- 형태: char *strtok(char *restrict s1, const char *restrict s2)
- 인수: char *s1 자르기 대상 문자열
char *s2 잘라 내기 위한 문자 모임 - 반환: char * 잘라 내기한 문자열의 첫번째 포인터를 반환하며, 문자열이 없다면 NULL을 반환
예로, "jwmx.tistory.com"을 "."으로 자르기를 하면 함수를 호출할 때마다 "jwmx", "tistory", "com"의 선두 번지의 포인터를 반환합니다.
처음에는 자르기 대상인 문자열과 자르기를 위한 문자를 인수로 호출합니다.
strtok( str, sep);
이후에는 문자열 대상을 NULL과 자르기를 위한 문자만 인수로 전달합니다.
strtok( NULL, sep);
더 이상 구할 문자열이 없다면 NULL이 반환됩니다.
주의) strtok()는 잘라 낸 문자열을 구하기 위해 대상 문자열에 NULL을 추가합니다. 즉, 원래의 문자열 내용이 변경 되므로 주의해야 합니다.
C언어 strtok() 함수 예제
#include <stdio.h>
#include <string.h>
int main( void)
{
char str[] = "jwmx badayak com";
char *ptr;
int ndx;
printf( "함수 호출 전: %s\n", str);
ptr = strtok( str, " ");
printf( "%s\n", ptr);
while( ptr = strtok( NULL, " ")){
printf( "%s\n", ptr);
}
printf( "함수 호출 후: %s\n", str);
// 함수 호출 후에는 원본 문자열의 내용이 바뀌므로 주의해야 합니다.
printf( "문자열의 변화\n");
for( ndx=0; ndx < 17; ndx++)
printf( "%c %d\n", str[ndx], str[ndx]);
return 0;
}
C언어 strtok() 예제 실행 결과
]$ ./a.out
함수 호출 전: jwmx badayak com
jwmx
badayak
com
함수 호출 후: jwmx
문자열의 변화
j 106
w 119
m 109
x 120
0
b 98
a 97
d 100
a 97
y 121
a 97
k 107
0
c 99
o 111
m 109
0
]$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 atoi 함수 10진수 문자열을 정수로 변환 (6) | 2020.03.12 |
---|---|
C언어 strpbrk 함수 문자열에서 특정 문자들이 시작하는 위치의 포인터 구하기 (2) | 2020.03.11 |
C언어 strcspn 함수 문자열에서 특정 문자가 포함되지 않는 문자열 길이 구하기 (0) | 2020.03.11 |