- ベストアンサー
printfの書式%.*s
海外のサイトに掲載されているサンプルコード中のprintfの書式がわかりません。 printf("%2d: %.*s\n", i, ovector[2*i+1] - ovector[2*i], str + ovector[2*i]); PCREのサンプルの中に出てくるコードですが、上記の「%.*s」は、どういった意味になりますか? よろしくお願いいたします。 http://stackoverflow.com/questions/1421785/how-can-i-use-pcre-to-get-all-match-groups
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ピリオドに続く数字は精度を表します。 sに精度を指定した場合、出力する文字数を制限することになります。 たとえば、 printf("%.3s", "abcdefg"); とすると、abcが出力されます。 ピリオドのあとに*を指定した場合、精度を引数で指定することになります。 具体的には、 printf("%.*s", 4, "abcdefg"); とすれば、abcdが出力されることになります。
その他の回答 (1)
- pixie-grasper
- ベストアンサー率49% (28/57)
回答No.1
少し(認知度が)マイナーな仕様ですが、調べてみると http://www.mm2d.net/c/c-01.shtml http://www.k-cube.co.jp/wakaba/server/format.html の2つのページに記載されている事から、str + ovector[2*i]から始まる文字列を最大ovector[2*i+1] - ovector[2*i]文字出力する指定のようです。
お礼
ありがとうございます。大変参考になりました。