看板 C_and_CPP 關於我們 聯絡資訊
不知道為什麼一直出錯 還是怎麼樣 是我太笨了嗎= = 查了很多資料 還搞不出來我想要的 我問題是 我需要分割輸入的字串 但是會一直跑出問題 有人知道為什麼嗎Orz 把輸入字串 分割空格 寫法大概是 string data,tmp[7]; cin>>data; tmp[0]=strtok((char *)data.c_str()," "); tmp[1]=strtok(NULL," "); .... 有7筆資料 可是run的時候 因為加這幾行 導致執行中止出現回報不回報問題視窗= = 難道strtok分割只能運用到 讀寫檔分割字串 不能分割輸入的字串? ~.~ 請益各位大大囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.216.195
james732:或許你可以考慮改用 stringstream ? 11/15 19:17
kiki86151:輸入部分改用 stringstream?? 沒教過這個方法~.~ 11/15 19:21
stupid0319:老師有教怎麼談戀愛嗎 11/15 19:24
fjm31714:c_str()出來的const char*吧? strtok會變動到第一個參數 11/15 19:27
fjm31714:裡面的值 11/15 19:27
kiki86151:樓上我還是不懂 如果strtok string 如果沒有轉型態會有 11/15 19:32
kiki86151:問題 11/15 19:32
fjm31714:data.c_str()的型態是const char* 像是...常數 可是 11/15 19:36
fjm31714:strtok他會去把要切割的位置改成 '\0' 11/15 19:37
fjm31714:http://0rz.tw/4h4LI 參考一下範例 11/15 19:39
james732:char arr[64]; strcpy(arr,data.c_str()); 11/15 20:35
james732:接下來 strtok 就拿 arr 去切,這樣也行 11/15 20:35
james732:那個長度[64]只是舉例,你可以改成適合的 11/15 20:36
loveme00835:strtok ... 我不用那種會亂偷改我輸入的函式 11/15 23:05
loveme00835:http://codepad.org/yluFZDc8 11/15 23:05
loveme00835:順帶一提當你使用了轉型, 可能正在用不好的 framework 11/16 00:03
loveme00835:在寫程式, 也可能正在使用會讓程式炸掉的方法 11/16 00:04