看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 小弟我很久沒摸程式,C++也不算是非常熟 想請問一下有關將輸入的string拆解的方法 我現在要寫的程式可以的輸入有 純數字 字串+數字 純字串 (ACM-101) 我想讓輸入格式固定(字串開頭一定是字母) 例如可以輸入 5 or 10 abc 123 or abc 123 bcd 456 abc or cde 我目前的想法是先用 getline 把全部的輸入放到一個string 然後再去判斷是哪種情形 我想讓輸入格式固定(字串開頭一定是字母) 所以只要判斷是字串還是數字再去執行下面的步驟 C++裡面有可將全部的string一次讀出一小段子字串 再去判斷是否為數字或是字串的功能嗎? 我有稍微看了一下線上cplusplus的reference 但是找不到我想要的功能 string轉int的部分我想說可以用atoi 但是如果沒辦法順利的將子字串分解並判斷 就真的不知道下一步怎麼處理比較好 -------------------------------------------- C++算是半新手接近全新,用C++ Primer自學 + 寫ACM 請大家多多指教 謝謝 -- 我不是宅 我只是比較居家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.7.69
goodword:stringstream 應該可以 07/14 22:43
goodword:http://0rz.tw/WpmhT 這有例子 07/14 22:47
goodword:嗯...我看了一下acm-101 發現不用這樣做啊 07/14 22:52
goodword:它只有第一行是數字 07/14 22:53
goodword:接下來都是 sss 1 sss 2 的形式 + 最後的 quit 07/14 22:53
goodword:所以只是每次 cin>>s; 然後看看 s=="quit"? 07/14 22:54
goodword:再決定要不要 cin>>num1>>s2>>num2; 啊 07/14 22:55
rock1985:謝謝你 想說這種問題以後應該會常碰到,所以想找出適合 07/14 23:23
rock1985:各種情形的方法,而不是只為了解決ACM101 07/14 23:24
rock1985:抱歉 感覺例子裡面沒有切出子字串??? 07/14 23:35
rock1985:結果我妥協了 暫時就只用剛好符合101的做法 XD 07/15 00:33
tinlans:istringstream,都用 C++ 了別再 atoi 了。 07/15 02:41