sprintf関数:書式指定文字列に従って値を変換した新しい文字列を取得する

Perl で用意されている組み込み関数の一つである sprintf 関数の使い方です。 sprintf 関数は値を指定した書式文字列を使って変換し、変換後の文字列を取得します。

(Last modified: )

sprintf関数の書式と基本的な使い方

sprintf 関数は次のように定義されています。

sprintf
sprintf(FORMAT,LIST)
書式指定文字列で指定した方法に従って値を変換し、作成された新しい文字列を
返します。

パラメータ:
  FORMAT  書式指定文字列
  LIST  変換される値のリスト
戻り値:
  変換後の文字列

1 番目の引数には値をどのように変換するのかを表す書式指定文字列を指定します。 2 番目の引数には変換される値を記述します。複数の値を指定する場合はカンマ(,)で区切って続けて記述します。

書式指定文字列の記述方法などの詳細な解説は「値の書式指定」を参照して下さい。

具体的には次のように記述します。

my $str = sprintf("[%#5o]", 30);

この場合、変数「$str」に「[  036]」と言う文字列が格納されます。

サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $str;
$str = sprintf("[%#5o]", 30);
print "30 -> $str\n";

$str = sprintf("%.3s", "September");
print "September -> $str\n";

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

sprintf関数:書式指定文字列に従って値を変換した新しい文字列を取得する(1)

数値や文字列の値を別途指定した書式文字列に従って変換し、変換したあとの文字列を取得しました。

-- --

Perl で用意されている組み込み関数の一つである sprintf 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。