sscanf
sscanf — フォーマット文字列に基づき入力を処理する
説明
mixed sscanf ( string str, string format [, string var1 [, mixed &...]] )関数 sscanf() は、printf() の入力版です。sscanf() は、文字列 str を読み込み、これを指定したフォーマット format に基づき解釈します。 このフォーマットは、sprintf()のマニュアルに記述されています。 この関数のパラメータが二つだけの場合、処理された値は配列として返されます。 それ以外の場合は、もしオプションのパラメータが渡されればこの関数は 割り当てられた値の数を返します。オプションのパラメータは 参照渡しにする必要があります。
フォーマット文字列の中のあらゆる空白文字は、入力文字列の中の 空白文字列にマッチします。つまり、フォーマット文字列の中にタブ文字 \t が含まれていても、それは入力中の半角スペースにマッチしてしまうと いうことです。
例 2295. sscanf() の例
<?php
// シリアル番号を得る
list($serial) = sscanf("SN/2350001", "SN/%d");
// 続いて製造日を得る
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Item $serial was manufactured on: $year-" . substr($month, 0, 3) . "-$day\n";
?>
オプションのパラメータが指定された場合、この関数は、代入された値の 数を返します。 例 2296. sscanf() - オプションパラメータの使用法
<?php
// author 情報を取得し、DocBook エントリを生成
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", &$id, &$first, &$last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>
fscanf(), printf(), sprintf() も参照ください。
sscanf
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/23 00:15 UTC 版)
int sscanf(const char *str, const char *format, ...); sscanf は第1引数に文字列へのポインタを指定することで、標準入力からではなく文字列ストリームから読み込む。後述するように scanf でエラー処理を実装しようとすると、エラーにならずに再度入力待ちになってしまうパターンがある。このため標準入力から数値を入力する場合には、直接 scanf を使わずにいったん fgets 関数等で文字列として読み込んでから sscanf で処理することの方が多い。
※この「sscanf」の解説は、「scanf」の解説の一部です。
「sscanf」を含む「scanf」の記事については、「scanf」の概要を参照ください。
固有名詞の分類
- sscanfのページへのリンク