출처 - 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; }
'IT > C&C++' 카테고리의 다른 글
[C++] setcursortype(커서on/off) (0) | 2016.05.12 |
---|---|
[C] sprintf() 함수 (0) | 2016.04.18 |
[C]문자열을 정수로 변환 :: atoi() (0) | 2016.04.15 |
[C] memcmp 두개의 메모리 변수에 대한 내용 비교 (0) | 2016.04.15 |
-펌- [C] 프로그램 파라미터를 처리하는 getopt() 사용법 (0) | 2016.03.25 |