第15章 文字列処理とソート 練習問題 3

今日も今日とて,たんたんと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.

初めてのPerl

初めてのPerl

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