IT보안관의 공부 클라우드
strtok 구현(C프로그래밍 파워업그레이드) 본문
#include <stdio.h>
#include <string.h>
//strtok 구현 상당히 난이도가 있음.
char* StringTokenize(char *str, char* delim){
char* sStr=0;// 문자열 시작 위치
static char * tstr;// 문자열 주소를 저장하는 정적변수
int i=0;
if(str!=NULL)sStr=str;// str이 빈 값이 아니면 시작위치에 셋팅
else sStr=tstr;//str 이 NULL이면 기존 저장위치를 시작위치에 셋팅
if(strlen(sStr)<1)return NULL;//문자열이 끝난지 확인하기 위한 조건 여러가지 방식이 있을 수 있다.
for(i=0; i<strlen(sStr); i++){
if(sStr[i] == (*delim)||sStr[i] == '\0'){
sStr[i]='\0';
//printf("i:%d\n",i);
break;
}
}
tstr=&sStr[i+1];
//printf("sStr[i]:%c &sStr[i]%x\n",sStr[i+1],&sStr[i+1]);
return sStr;
}
int main(void){
char str[]="010-1111-3333";//토큰을 나눌 문자열
char * delim="-";// 토큰을 나눌 기준
char * token;
//printf("%d",str[0]);
token=StringTokenize(str,delim);
while(token!=NULL){
puts(token);
token=StringTokenize(NULL, delim);
}
return 0;
}
'개발 > C' 카테고리의 다른 글
버블소트(C프로그래밍 파워업그레이드) (0) | 2020.08.07 |
---|---|
문자열 함수 strlen, strcpy, strcmp 따라만들기(C프로그래밍 파워업그레이드) (0) | 2020.08.06 |
문제 16-문자열 대소문자 변경(C프로그래밍 파워 업그레이드) (0) | 2020.08.04 |
10진수 2진수로 변환하는 프로그램(C프로그래밍 파워 업그레이드) (0) | 2020.07.29 |
EOF 입력 시 종료되는 프로그램(C프로그래밍 파워 업그레이드) (0) | 2020.07.28 |
Comments