sprintf フォーマットされた文字列を返す &reftitle.description; stringsprintf stringformat mixedvalues フォーマット文字列 format に基づき生成された文字列を返します。 &reftitle.parameters; &strings.parameter.format; values &reftitle.returnvalues; フォーマット文字列 format に基づき生成された文字列を返します。 &reftitle.errors; &strings.errors.sprintf; &reftitle.changelog; &strings.changelog.sprintf; &reftitle.examples; 引数の交換 フォーマット文字列における引数の 番号付け/交換 をサポートしています。 ]]> &example.outputs; ここで、フォーマット文字列が別のファイルにある場合を考えてみましょう。 これは、出力を国際化したりする場合に行われる可能性があります。 たとえばフォーマット文字列が次のように書き換えられたとすると、 間違った引数の順番 フォーマット文字列における引数の 番号付け/交換 をサポートしています。 ]]> ここで、問題が発生します。フォーマット文字列における置換指示子の順番は、 コードにおける引数の順番と一致していません。 だからといってコードを変更するのではなく、 むしろ置換指示子が参照するフォーマット文字列のほうで指示を行う方が望ましいでしょう。 フォーマット文字列を次のように書き換えてみましょう。 順序付きの置換指示子 ]]> こうすることによるもうひとつの利点は、 同じ置換指示子を複数回使用する際にコードに引数を追加せずにすむことです。 置換指示子を繰り返し使う ]]> 引数の交換を使うときには、 位置指定子 n$ をパーセント記号 (%) の直後に置かなければならず、 間に他の指定を入れてはいけません。次に例を示します。 パディング文字を指定する ]]> &example.outputs; 他の指定子と一緒に位置指定子を使う ]]> &example.outputs; <function>sprintf</function>: 整数を0埋めする ]]> <function>sprintf</function>: 通貨をフォーマットする ]]> &example.outputs; <function>sprintf</function>: 科学的記法 ]]> &example.outputs; &reftitle.seealso; printf fprintf vprintf vsprintf vfprintf sscanf fscanf number_format date