
海外のサイトに掲載されているサンプルコード中の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-c …
No.2ベストアンサー
- 回答日時:
ピリオドに続く数字は精度を表します。
sに精度を指定した場合、出力する文字数を制限することになります。
たとえば、
printf("%.3s", "abcdefg");
とすると、abcが出力されます。
ピリオドのあとに*を指定した場合、精度を引数で指定することになります。
具体的には、
printf("%.*s", 4, "abcdefg");
とすれば、abcdが出力されることになります。
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]文字出力する指定のようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
C#でアクセス権限の取得方法が...
-
5
cout と cerrの違い
-
6
MMDでavi出力が出来ない
-
7
無停電電源装置(UPS)の待機時...
-
8
VBAのExecメソッドで画面を非表...
-
9
エクセルで英字と数字を組み合...
-
10
Verilogのinoutをシミュレート...
-
11
コンセントの電力は入力と出力...
-
12
ACCESSからExcelへエクスポート...
-
13
VBAでテキスト出力時のスペース...
-
14
Visual Studio 2019、 Visual b...
-
15
エクセルVBAにて アルファ...
-
16
CRC16計算について
-
17
アクセスでエクセルに出力する...
-
18
excel vbaでテキストの文字検索
-
19
COBOLで可変長ファイルの出力に...
-
20
AVアンプのHDMI出力をdisplaypo...
おすすめ情報
公式facebook
公式twitter