[완료] strtok에서 연속된 구분자 구별하기
글쓴이: litmisty / 작성시간: 수, 2009/04/08 - 1:55오전
char buf[128];
strcpy(buf,"1,2,,4,5");
char seps[] = ",";
char *tr;
tr = strtok(buf, seps);
while(tr != NULL) {
printf("%s\n", tr);
tr = strtok(NULL, seps);
}
return 0;strtok을 사용해서 문자열을 자를 때 예제와 같이 구분자가 붙어있을 경우에
1
2
4
5
이런식으로 출력이 됩니다.
제가 원하는 출력은
1
2
4
5
인데요, 어떻게 하면 될런지요..
구분자가 연속 된 경우에는 무시하지 않고 값이 없다는 것을 처리하고 싶습니다.
답변 부탁드립니다.
Forums:


자답입니다.;;
const char *str = "source,desti,string1,,string3"; const char *delims = ","; size_t start = 0; while (str[start] != '\0') { size_t end = strcspn(str + start, delims); printf("%.*s\n", end, str + start); start += (str[start + end] != '\0') ? end + 1 : end; }이런 소스가 있네요.
고맙습니다
잘 참고가 되었네요. 자답으로라도 남겨주셔서 감사합니다~~
댓글 달기