作者cutecpu (可愛中央處理器)
看板Perl
標題Re: [問題] 如何取出字串中的數字並加以運算
時間Mon Jan 30 11:27:51 2012
※ 引述《saka12 (saka)》之銘言:
: 大家好,我式perl的新手
: 請問如果從<STDIN>輸入任意數字或字母,
: 在不使用"陣列"跟"正規表示法"的前提下,
: 怎麼只取數字,並運行基本的運算
: 例如:
: 使用者輸入: 1 12 3 a 24 e 5
: 螢幕顯示: 1+12+3+24+5=45
: 我本來用substr來取單一字元,可是這樣12會被拆成1跟2,
: 我卡這裡很久了,實在想不出來,所以請大家幫幫忙
: 謝謝D
以下是土法煉鋼法,沒有用到陣列跟正規表示式唷:
#!/usr/bin/perl -w
$partialSum = $sum = 0;
$expr = <STDIN>;
for(split('',$expr)){
if($_ ge '0' and $_ le '9'){
$partialSum = 10 * $partialSum + $_;
$digit = 1;
}
elsif($digit){
$exp .= "$partialSum+";
$sum += $partialSum;
$partialSum = $digit = 0;
}
}
chop($exp);
print "$exp=$sum\n";
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.59.164.109
推 saka12:真的太謝謝你了,我已經想了好幾天了,可以請問你為甚麼 01/30 15:05
→ saka12:$partialSum = $digit = 0;嗎? 01/30 15:06
推 xatier:初始化阿XD 01/30 16:07
推 abliou:前輩 您使用到split的時候 嚴格來講就用到陣列了喔 XDD 01/31 01:50
→ cutecpu:啊,對吼XD...(失敗) 01/31 10:30