Ruby 4.0 リファレンスマニュアル

function rb_sprintf

[edit]
VALUE rb_sprintf(const char *fmt, ...)

fmt に従って整形した文字列を、新しい String として作成します。 Ruby 独自の sprintf(3) で、ロケールに依存しません。

書式は %[flags][width][.precision][length]conversion の形で、次のものが使えます。

  • フラグ -- 空白、#、+、-、0
  • 幅 -- 0 以上の 10 進整数と *
  • 精度 -- 0 以上の 10 進整数と *
  • 長さ修飾子 -- L、h、t、z、l、ll、q(_WIN32 では I も使えます)
  • 変換指定 -- A、D、E、G、O、U、X、a、c、d、e、f、g、i、n、o、p、s、u、x、%

さらに、任意の Ruby のオブジェクトを文字列にできる PRIsVALUE マクロが使えます。 "%"PRIsVALUE は to_s の結果を出力し、+ フラグを付けた "%+"PRIsVALUE は inspect の結果を出力します。 "%i" と衝突するので、整数には "%d" を使ってください。

使用例
rb_sprintf("|%"PRIsVALUE"|", Qtrue); // => "|true|"
rb_sprintf("%+"PRIsVALUE, rb_stdin);  // => "#<IO:<STDIN>>"
[PARAM] fmt:
printf のような書式文字列です。
[PARAM] ...:
書式に埋め込む値です。
[RETURN]
整形した結果の新しい String です。