[問題] C++ 切字串 token 的方法
最近在練習 C++ 的讀檔和切字串 (切token)
想請問除了使用 C 的 strtok 外還有什麼好方法嗎?
會這樣問是因為爬文有看到 C-style string 跟 C++ string 混用好像不太好?
(目前不知 C-style casting 的意義 @@)
若讀檔使用 getline 會面臨兩種版本選擇
1. char 的版本 + strtok 沒問題 (看起來應該像純C,除了getline)
但這是 C-style string ?
2. string 版本 + strtok (看起來應該像混用 ...)
string 轉成 char 就有點麻煩,而且是 const 型態,
要另外用 strcpy 一份出來用 ...
所以想問,有純 C++ 的方式嗎? 高手都是怎麼處理這種問題的阿?
(純手工打造,我只能想到 char 的方式一個字元一個字元的去處理...)
(跟某些語言比,實在有點想嫌棄strtok,但又想圖方便不想手工打造...)
謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.241.158
推
03/09 23:36, , 1F
03/09 23:36, 1F
→
03/09 23:36, , 2F
03/09 23:36, 2F
推
03/09 23:40, , 3F
03/09 23:40, 3F
→
03/09 23:42, , 4F
03/09 23:42, 4F
→
03/09 23:45, , 5F
03/09 23:45, 5F
推
03/10 00:22, , 6F
03/10 00:22, 6F
還想請問 sstream 可以一次依據多個 delimiter 切字串嗎?
像 strtok(str, "[A-Z] \n\r\t") 這樣?
目前只知道 sstream 搭配 getline 的方式,但這一次只能用一個字元去處理
EX : getline(ss, token, ',')
※ 編輯: henry035 來自: 140.113.241.158 (03/10 15:15)
推
03/11 00:15, , 7F
03/11 00:15, 7F
→
03/11 00:16, , 8F
03/11 00:16, 8F
→
03/11 00:16, , 9F
03/11 00:16, 9F