Re: [問題] 如何取出字串中的數字並加以運算

看板Perl作者 (saka)時間13年前 (2012/02/02 09:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串9/9 (看更多)
※ 引述《saka12 (saka)》之銘言: : ※ 引述《cutecpu (可愛中央處理器)》之銘言: : : 以下是土法煉鋼法,沒有用到陣列跟正規表示式唷: : : #!/usr/bin/perl -w $partialSum = 0; $sum = 0; : : $partialSum = $sum = 0; : : $expr = <STDIN>; : : for(split('',$expr)){ : : if($_ ge '0' and $_ le '9'){ : : $partialSum = 10 * $partialSum + $_; : : $digit = 1; : : } : : elsif($digit){ if($partialSum >= 1 and $partialSum <= 30) { : : $exp .= "$partialSum+"; : : $sum += $partialSum; } : : $partialSum = $digit = 0; : : } : : } : : chop($exp); if ($sum gt "0") { : : print "$exp=$sum\n";} elsif { print "無效運算"} : 首先先謝謝大家的幫忙,小弟我致上萬分感激! : 其實我後來也有想過要用10*1+2的方法來解決12會被拆成1跟2的問題, : 無奈小弟我實在太弱,寫不出來orz : 我還有一個問題,如果限制使用者只能輸入1~30的數字,之後的數字將不被運算的話, : 該怎麼做了? : 如果使用者只輸入字母,那我要如何print出"無效運算"呢? : 例如: : 1 2 12 a 15 b 31 -> 1+2+12+15=30 : a b c d -> 無效運算 : 先再次謝謝大家的幫忙! : 我會先用2-3天的時間來想想的,再回頭看看大家的idea的 : (沒辦法,我是新手,要多翻書,才得靈感) 大家好: 我把function直接回在cutecpuf前輩的code裡了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.130.53.186 ※ 編輯: saka12 來自: 24.130.53.186 (02/02 09:35)
文章代碼(AID): #1FAUUR-X (Perl)
討論串 (同標題文章)
文章代碼(AID): #1FAUUR-X (Perl)