看板 C_and_CPP 關於我們 聯絡資訊
看的很多文 但還是不懂到底該怎麼用ˊˋ 第一次使用這東西 我是這麼寫 char m[ 3000 ] = "3 3 3 4 5 6 2 4 7"; char *token; while ( token != NULL ) { sscanf( m, "%d %d %d", &a, &b, &c ); token = strtok( m, " " ); token = strtok( NULL, " " ); printf( "%d %d %d", a, b, c ); } 我是想要讓字串內的數字三個三個一組讀出來 但怎麼讀都失敗 請教一下板上高手 這該怎麼用 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.104.117
ianfang:while(sscanf( m, "%d %d %d", &a, &b, &c )) 06/22 18:31
ianfang:{ printf( "%d %d %d", a, b, c ); } 我真看不出來你程式 06/22 18:32
ianfang:跟你想做的問題有什麼關係... 06/22 18:33
ianfang:好像有點錯~先不要用 06/22 18:36
ianfang:整個被搞混了...首先strtok只要第一次傳給他字串~所以不能 06/22 18:42
ianfang:寫在while裡~sscanf是多餘的~如果你是要字串切割~你多做這 06/22 18:44
ianfang:動作要幹嘛 06/22 18:44
zlw:老實說,原PO光說不懂,到底哪裡不懂也看不出來,要怎麼回你 06/22 18:45
world9918:你要一次抓三組那不能用" "當切割條件 06/22 19:17
world9918:不然一次只切到一個數字 06/22 19:17
AGanPTT:不懂要怎麼切= = 才能一次把三個數字切掉 06/22 19:28
AGanPTT:應該說連strtok怎麼用都不會 06/22 19:29
zlw:此例,strtok找到" "後,將" "更改為\0。並傳回以這個\0當結尾 06/22 19:40
zlw:的 C-Style 字串開頭所在的char * 06/22 19:41
zlw:第一次用m當參數1時,由m[0]開始往右搜尋,之後就從前一次 06/22 19:42
zlw:return的指標,所指的地方去往右搜尋 06/22 19:42
zlw:打錯,之後的搜尋應該是前一次取代成\0的地方去搜尋 06/22 19:43
zlw:的後面地方 06/22 19:43