반응형
#include "stdio.h"
#include <string.h>
char * strtokex( char* str , char* deli )
{
static char* source = NULL;
static int str_size;
static int source_count;
int deli_count = 0;
char* start_posion = NULL;
int temp_count = 0;
char delimeter[10] = { 0, };
// str 이 null 이 아니면 새로운 문자열이 들어 왔으므로
// 새 문자열에 대한 것으로 교체 해 준다.
if ( str != NULL ) {
source = str;
str_size = strlen(str);
source_count = 0;
}
// 리턴 되어야할 문자열의 처음 포인터..
start_posion = source;
while ( *deli != '\0' )
{
delimeter[deli_count] = *deli; // delimeter[i++] = (char*)deli++;
deli_count++;
deli++;
}
// 모든 토큰을 구했다. 이제 문자열에서 토큰이 있는지 확인하고
// 있다면 그 토큰 부분에 \0 을 넣어 주도록하자.
while ( *source != '\0' )
{
for ( temp_count = 0 ; temp_count < deli_count ; temp_count++ )
{
if ( *source == delimeter[temp_count] )
{
*(source) = (char)0;
source++;
source_count++;
return start_posion;
}
}
source++;
source_count++;
}
// 지금 들어와 있는 문자열의 마지막을 포인터 했다는 뜻임
// 즉.. 더 이상 문자열을 자를수 없으므로... source_count 만 1 증가 시킴으로써
// 다음번 호출 될때에는 null 을 리턴하게 만든다.
if ( source_count == str_size ) {
source_count++;
return start_posion;
} else {
return NULL;
}
}
#include <string.h>
char * strtokex( char* str , char* deli )
{
static char* source = NULL;
static int str_size;
static int source_count;
int deli_count = 0;
char* start_posion = NULL;
int temp_count = 0;
char delimeter[10] = { 0, };
// str 이 null 이 아니면 새로운 문자열이 들어 왔으므로
// 새 문자열에 대한 것으로 교체 해 준다.
if ( str != NULL ) {
source = str;
str_size = strlen(str);
source_count = 0;
}
// 리턴 되어야할 문자열의 처음 포인터..
start_posion = source;
while ( *deli != '\0' )
{
delimeter[deli_count] = *deli; // delimeter[i++] = (char*)deli++;
deli_count++;
deli++;
}
// 모든 토큰을 구했다. 이제 문자열에서 토큰이 있는지 확인하고
// 있다면 그 토큰 부분에 \0 을 넣어 주도록하자.
while ( *source != '\0' )
{
for ( temp_count = 0 ; temp_count < deli_count ; temp_count++ )
{
if ( *source == delimeter[temp_count] )
{
*(source) = (char)0;
source++;
source_count++;
return start_posion;
}
}
source++;
source_count++;
}
// 지금 들어와 있는 문자열의 마지막을 포인터 했다는 뜻임
// 즉.. 더 이상 문자열을 자를수 없으므로... source_count 만 1 증가 시킴으로써
// 다음번 호출 될때에는 null 을 리턴하게 만든다.
if ( source_count == str_size ) {
source_count++;
return start_posion;
} else {
return NULL;
}
}
반응형
'공부 > 컴퓨터' 카테고리의 다른 글
mysql에 데이터를 넣고 읽는 속도 (0) | 2004.11.22 |
---|---|
[XML] 웹페이지에서 XML 소스 가지고 쉽게 보여주기 (0) | 2004.11.20 |
[MFC] 윈도우 항상 최상위에 존재하게 하기 (0) | 2004.11.01 |
[PL] 프로그램언어론 1학기 노트정리 (0) | 2004.10.27 |
[Win32/MFC] 특정 윈도우에 메세지 또는 키보드 입력 보내기 (0) | 2004.09.23 |