strtok() 문자열을 문자로 자르기
C & C++ 관련 :
2008. 10. 15. 21:51
반응형
출처 : http://forum.falinux.com/zbxe/?document_srl=408126&mid=C_LIB&sort_index=readed_count&order_type=desc
설명
문자열을 문자로 자르는 함수 입니다. 예로, "forum.falinux.com"을 "."으로 자르기를 하면 함수를 호출할 때 마다 "forum", "falinux", "com"의 선두 번지의 포인터를 반환합니다.
처음에는 자르기 대상인 문자열과 자르기를 위한 문자를 인수로 호출합니다.
strtok( str, sep);
이후에는 문자열 대상을 NULL과 자르기를 위한 문자만 인수로 전달합니다.
strtok( NULL, sep);
더 이상 구할 문자열이 없다면 NULL이 반환됩니다.
*** 주의 ***
strtok()는 잘라 낸 문자열을 구하기 위해 대상 문자열에 NULL을 추가합니다. 즉, 원래의 문자열 내용이 변경 되므로 주의해야 합니다.
헤더 | string.h | |||||
형태 | char *strtok(char *restrict s1, const char *restrict s2); | |||||
인수 |
| |||||
반환 |
|
예제
#include <stdio.h> #include <string.h> int main( void) { char str[] = "forum falinux 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", str); for( ndx=0; ndx < 17; ndx++) printf( "%c %d\n", str[ndx], str[ndx]); return 0; }
]$ ./a.out 함수 호출 전: forum falinux com forum falinux com 함수 호출 후: forum 문자열의 변화 f 102 o 111 r 114 u 117 m 109 0 f 102 a 97 l 108 i 105 n 110 u 117 x 120 0 c 99 o 111 m 109
반응형
'C & C++ 관련' 카테고리의 다른 글
[ANSI-C] __FUNCTION__ 을 바꾸자. (0) | 2008.10.23 |
---|---|
터미널 제어 termios (0) | 2008.08.17 |
C언어에서 \n 과 \r 의 차이는 무엇인가요 (2) | 2008.08.17 |