strsep 으로 토큰을 나누는 메크로를 만들고싶습니다
글쓴이: gkgh / 작성시간: 화, 2013/05/28 - 2:36오후
#define paser(x){\ cPtr = strsep(&stringPtr,",");\ strcpy(StrArrPtr,stingPtr);\ StrArrPtr = StrArrPtr + 1;\ printf("%s",x);}
를 사용해서 토큰을 나눠볼려고했는데 맘처럼 안나눠지네요
Struct logDB logarry[Max] for(icount = 0; icount < logcount ;icount++) { fgets(string,sizeof(string),stream); if (string == NULL){ break; } arryPtr = logarry[icount].code; // srting token StringPtr = string; for(inum = 0 ; inum< Logcount ; inum ++){ paser(logarry[icount].code); printf("%s",logarry[icount].code);
이런식으로 짜 놓은 상태인데
log 구조체에 여러 DB들을 각각각각 code 부분에 토큰 한개 다른 부분들에 토큰들을 한개씩 넣고 싶어서
짜 놓은 겁니다.. 코드상에서 이상한점이나 문제점좀 찾아주세요..
저 메크로를 풀어서 사용하면 잘만되는데 define 으로 만들어 놓는 과정에서 참힘드네요...
코드 안에서 잘 돌아가던 코드는
strcpy(logarry[icount].code,cptr); cptr = strsep(&StringPtr,","); strcpy(logarry[icount].name,cPtr); cPtr = strsep(&StringPtr,",");
입니다.. c언어를 공부한지 얼마 되지않아서 루프를 돌리다가 실패를해서 일일이 하나하나
저장하는 위치를 적었지만 이번에는 배열포인터 + 1을 하면 포인터크기만큼 그 뒤에 자리 잡게되는걸
이용해볼려고했지만 맘처럼 쉽게 되지않네요
조언 부탁드립니다
Forums:
댓글 달기