今日も今日とて,たんたんとPerl.
3. 与えられた文字列の中から部分文字列を見つけその位置を返す
部分文字列の位置を返すのはindex関数でした.
#!/usr/bin/env perl -w
use strict;
# 検索対象
print "input target string: ";
chomp (my $string = <STDIN>);
# 検索ワード
print "input sub string: ";
chomp (my $sub = <STDIN>);
# indexで見つけられなくなるまで(-1を返すまで)
my $pos = 0;
while ( ($pos = index ($string, $sub, $pos) ) != -1) {
print "$pos\n";
$pos += 1;
}出力は貧相ですが,うまく動作するようです.解答も似たような感じ.
ところで,解答では,わかりにくソースコードについても説明されてたので,せっかくだからこのコードを目一杯わかりにくくしてみよう.
#!/usr/bin/env perl -w
use strict;
print
"input target string: "
;chomp (
my
$string
=
<STDIN>
);
print
"input sub string: "
;chomp (
my
$sub
=
<STDIN>
);
my $pos = 0;while
( (
$pos
= index (
$string,
$sub,
$pos
))
!=
-1)
{
print
"$pos\n";$pos += 1;
}汚し足りない? でも,こんなの書いてたらなんか気持ち悪くなってきちゃったYO.

- 作者: ランダル・L.シュワルツ,トムフェニックス,Randal L. Schwartz,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2003/05
- メディア: 単行本
- 購入: 15人 クリック: 474回
- この商品を含むブログ (294件) を見る