各トークン間にゼロ要素が存在する可能性があるコンマ区切りリストを解析する最も簡単な方法は何ですか? cstringは次のようになります
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,",");
}
ご意見をお寄せいただきありがとうございます。(投稿する前にもっと慎重に考えるべきだったかもしれません。)