Re: [問題] 如何取出字串中的數字並加以運算
※ 引述《saka12 (saka)》之銘言:
: 大家好,我式perl的新手
: 請問如果從<STDIN>輸入任意數字或字母,
: 在不使用"陣列"跟"正規表示法"的前提下,
: 怎麼只取數字,並運行基本的運算
: 例如:
: 使用者輸入: 1 12 3 a 24 e 5
: 螢幕顯示: 1+12+3+24+5=45
: 我本來用substr來取單一字元,可是這樣12會被拆成1跟2,
: 我卡這裡很久了,實在想不出來,所以請大家幫幫忙
: 謝謝D
手癢 就土法煉鋼一下
利用perl型態自行判定的特性寫出你要的東西
#!/usr/bin/perl -w
my $expr = <STDIN>;
my $digit = "";
my $sum = 0;
for my $i(0..(length $expr))
{
my $char = substr( $expr, $i, 1 );
if( (ord($char) >= 48) && (ord($char) <= 57) )
{
$digit .= $char;
}
elsif( (ord($char) == 32) || (ord($char) == 10 ) )
{
if( $digit ne "" )
{
$sum += $digit;
}
$digit = "";
}
}
print $sum."\n";
這程式有個ambiguous的地方
就是要是你輸入字串1 12 3 a 24 e 5 答案是45沒錯
但是要是輸入1 12 3a24 e 5, 就會變成 1+12+324+5 = 342
因為你沒說你這樣要怎去處理
所以就暫時先這樣~
需要的話就拿去改一改囉~ :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.183.82
→
02/01 11:43, , 1F
02/01 11:43, 1F
→
02/01 11:43, , 2F
02/01 11:43, 2F
→
02/01 16:32, , 3F
02/01 16:32, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 8 之 9 篇):