我有一個(gè)像這樣的字符串:a;b;c;d;ef;g;h;i;j1;2;3;4;5我想逐個(gè)元素解析它。我使用了嵌套的strtok函數(shù),但是它只是分割第一行并使標(biāo)記指針為null。我該如何克服呢?這是代碼:token = strtok(str, "\n");while(token != NULL && *token != EOF){ char a[128], b[128]; strcpy(a,token); strcpy(b,a); printf("a:%s\n",a); char *token2 = strtok(a,";"); while(token2 != NULL) { printf("token2 %s\n",token2); token2 = strtok(NULL,";"); } strcpy(token,b); token = strtok(NULL, "\n"); if(token == NULL) { printf("its null"); }}輸出:token 2 atoken 2 btoken 2 ctoken 2 dtoken 2 e
3 回答

慕容森
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
曲折…… for
循環(huán)本質(zhì)上是在發(fā)現(xiàn)位置加寫NUL'\ 0' strtok()
的組合使用strchr()
。它僅在創(chuàng)建和剖析該行的副本時(shí)才有效;否則,您將必須strlen(line)
在循環(huán)的頂部進(jìn)行調(diào)用并保存該長(zhǎng)度,以將其添加到for
循環(huán)控件第三部分的行中。
- 3 回答
- 0 關(guān)注
- 716 瀏覽
添加回答
舉報(bào)
0/150
提交
取消