コンテンツにスキップ

sprintf

Category: 変換

書式

(sprintf、書式、値1、値2、…)

引数

引数 説明
書式 %d などの変換指定を含む文字列
値 変換指定に順に埋め込む値

戻り値

書式に値を埋め込んだ文字列。引数がないときは 引数が足りません。(エラー)。

解説

C 言語の sprintf に近い書式で文字列を作ります。書式の % から始まる変換指定に、値を先頭から順に 1 つずつ埋め込みます。値が足りない変換指定や、%z のように変換文字が正しくない指定は、そのまま文字として残ります(このとき値は消費しません。Mc201-7以降。それ以前は、正しくない指定の % が消え、値も 1 つ使われていました)。余った値は無視されます。

幅は 4096、精度は 512 が上限です。それを超える数を書いても、上限として扱います(Mc201-7以降)。

変換指定

%[フラグ][幅][.精度]変換文字 の形です。

フラグ 意味
- 左寄せ
+ 正の数にも + を付ける
0 0 で埋める
空白 空白で埋める
# x o に 0x 0 を付ける。f e に小数点を必ず付ける
変換文字 意味
d 10 進整数
i 10 進整数(d と同じ。Mc201-1 では 8 進になる不具合があり、Mc201-2 で修正)
o 8 進整数(符号なし)
u 10 進整数(符号なし)
x X 16 進整数(小文字・大文字)
f 小数(固定小数点)
e E 小数(指数表記)。Windows では指数部が 3 桁になる(1.234500e+003)
g G 小数(f と同じ固定小数点表記になる)
s S 文字列。幅は半角換算(全角文字を 2 として)数える。精度を指定すると、その文字数までに切り詰める(%.3s。Mc201-2以降)
c C 数値を文字コード(Unicode のコードポイント)として 1 文字にする

値は全角の数字も使えます。整数の変換は、数値として読めない値を 0 として扱います。

SAORI 引数の計算に注意

数字で始まる値は、里々が先に式として計算してから渡します。(sprintf、%s、1+2) は 3 に、(sprintf、%s、1-2) は -1 になります。式のまま出力したいときは $SAORI引数の計算=無効 にしてください。007 のように演算子を含まない数字はそのままです。詳しくはssu の引数の計算を参照してください。

使用例

(sprintf、%d個、5)           → 5個
(sprintf、%05d、42)           → 00042
(sprintf、%x、255)            → ff
(sprintf、%X、255)            → FF
(sprintf、%s-%s、a、b)         → a-b
(sprintf、[%5s]、あ)          → [   あ]     (あ は幅 2 として数える)
(sprintf、[%-5s]、あ)         → [あ   ]
(sprintf、%.2f、3.14159)      → 3.14
(sprintf、%c、65)             → A
(sprintf、[%.3s]、あいうえお)   → [あいう]
(sprintf、%+d、5)             → +5

関連項目