作者rock1985 (疾風)
看板C_and_CPP
標題[問題] cin getline 拆解輸入的問題
時間Wed Jul 14 22:26:48 2010
遇到的問題: (題意請描述清楚)
小弟我很久沒摸程式,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:嗯...我看了一下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