什麼是解析逗號分隔列表的最簡單方法,每個記號之間可以有零個元素。 CString對象可能看起來像如何解析','分離的字符串使用c?
1, 3, 4, 5, 6, 7, 8, ....
但也可能看起來像
, , , , , , , , , ...
我已經試過類似:
char *original = "1, 3, 4, 5, 6, 7, 8, ...."
char *tok = strtok(original," ,")
while(tok!=NULL){
while(*tok!='\0'){
//dostuff
tok++;
}
tok=strtok(NULL," ,");
}
這顯然只適用,如果有逗號的元素之間,例如我注意到,如果沒有元素,第一個項目列表將被跳過。
我試過其他解決方案,如strchr(),但這變得非常難看,我認爲有一個更簡單的方法。
感謝
更新:
一些測試我注意到,標化的「」似乎工作,在所有的情況下,除非第一項失蹤後。所以我把它作爲一個特例來解決。
char *original = "1, 3, 4, 5, 6, 7, 8, ...."
if(*original==',')
//dostuff
char *tok = strtok(original,",")
while(tok!=NULL){
while(*tok!='\0'){
//dostuff
tok++;
}
tok=strtok(NULL,",");
}
感謝您的輸入和您的幫助。 (也許我應該發佈前給予該更仔細的思考。)
爲什麼不使用任何庫自己編寫整個東西? – 2009-12-30 04:27:57