2009-11-09 6 views
0

다음 코드를 사용하여 C의 문자열을 토큰 화하고 ","을 사용하여 토큰을 만들었지 만 "토큰을 만들 때 문자열의 토큰을 만들 때를 알고 싶었습니다. 때 ","문자열에서 발생합니다.토큰화할 마지막 이유가 무엇인지 알아 보는 방법

char *pch; 
pch = strtok(buffer, ", "); 
while (pch!=NULL) { 
    printf("%s\n", pch); 
    pch = strtok(NULL, " ,"); 
} 

답변

2

내가 아는 한 strtok은이 기능을 지원하지 않습니다. 그러나 추가 검사를 수행 할 수 있습니다. pch이 반환 될 때마다 나머지 버퍼의 첫 번째 문자에 ""또는 ","가 있는지 확인하십시오. 그런 다음 나머지 버퍼를 추적해야하지만 이는 숙제입니다.

0

strtok 및 CLIB는이 정보를 노출하지 않습니다. 따라서 이식 할 수있는 방법이 없습니다.

clib 구현을 위해 작동하는 해킹으로 원하는 정보를 얻을 수 있지만 안정적이고 이식 가능한 것을 원한다면 분리자를 알려주는 strtok-workalike를 구현하는 것이 유일한 선택입니다 .

그 업무는 로켓 과학이 아니며 ...

관련 문제