Re: [問題] 如何取出字串中的數字並加以運算
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 9 之 9 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章