C-standard-library-c-function-sprintf

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-sprintf()

説明

Cライブラリ関数 int sprintf(char str、const char * format、…​)は、 *str が指す文字列にフォーマットされた出力を送信します。

宣言

以下は、sprintf()関数の宣言です。

int sprintf(char *str, const char *format, ...)

パラメーター

  • str -これは、結果のC文字列が格納されるchar要素の配列へのポインタです。
  • フォーマット-これは、バッファに書き込まれるテキストを含む文字列です。 オプションで、後続の追加の引数で指定された値で置き換えられ、要求どおりにフォーマットされた埋め込みフォーマットタグを含めることができます。 書式タグのプロトタイプ:*%[flags] [width] [。precision] [length] specifier *、以下で説明します-
Sr.No. Specifier & Output
1

c

キャラクター

2

d or i

符号付き10進整数

3

e

e文字を使用した科学表記法(仮数/指数)

4

E

E文字を使用した科学表記法(仮数/指数)

5

f

10進浮動小数点

6

g

%eまたは%fの短い方を使用します。

7

G

%Eまたは%fの短い方を使用します

8

o

符号付き8進数

9

s

文字列

10

u

符号なし10進整数

11

x

符号なし16進整数

12

X

符号なし16進整数(大文字)

13

p

ポインターアドレス

14

n

何も印刷されない

15

%

キャラクター

Sr.No. Flags & Description
1

-

指定されたフィールド幅内で左寄せします。右揃えがデフォルトです(widthサブ指定子を参照)。

2

+

正の数であっても、結果の前にプラス記号またはマイナス記号(+または-)を強制的に付けます。 デフォルトでは、負の数値の前に-ve記号が付きます。

3

(space)

符号が書き込まれない場合、値の前に空白スペースが挿入されます。

4

#

o、x、またはX指定子とともに使用すると、ゼロ以外の値の場合、値の前にそれぞれ0、0x、または0Xが付きます。 e、E、fと共に使用すると、数字が続かない場合でも、出力に小数点が含まれるようになります。 デフォルトでは、数字が後に続かない場合、小数点は書き込まれません。 gまたはGを使用すると、結果はeまたはEと同じですが、末尾のゼロは削除されません。

5

0

スペースの代わりにゼロ(0)で数値を左に埋め込みます。ここで、埋め込みが指定されます(幅サブ指定子を参照)。

Sr.No. Width & Description
1

(number)

印刷される最小文字数。 表示される値がこの数値より短い場合、結果は空白スペースで埋め込まれます 結果が大きくなっても、値は切り捨てられません。

2 幅はフォーマット文字列では指定されませんが、フォーマットされる必要がある引数の前に追加の整数値引数として指定されます。
Sr.No. .precision & Description
1

.number

整数指定子(d、i、o、u、x、X)の場合-精度は、書き込まれる最小桁数を指定します。 書き込まれる値がこの数値より短い場合、結果には先行ゼロが埋め込まれます。 結果が長くなっても値は切り捨てられません。 精度0は、値0に文字が書き込まれないことを意味します。 e、E、およびf指定子の場合-これは、小数点の後に印刷される桁数です。 gおよびG指定子の場合-これは、印刷される有効数字の最大数です。 s-これは印刷される文字の最大数です。 デフォルトでは、終了ヌル文字が見つかるまで、すべての文字が印刷されます。 cタイプの場合-効果はありません。 精度が指定されていない場合、デフォルトは1です。 精度の明示的な値なしで期間が指定された場合、0が想定されます。

2
  • .*.

精度はフォーマット文字列では指定されませんが、フォーマットする必要がある引数に先行する追加の整数値引数として指定されます。

Sr.No. Length & Description
1

h

引数は、short intまたはunsigned short intとして解釈されます(整数指定子にのみ適用されます:i、d、o、u、x、およびX)。

2

l

引数は、整数指定子(i、d、o、u、x、およびX)のlong intまたはunsigned long int、および指定子cおよびsのワイド文字またはワイド文字列として解釈されます。

3

L

引数はlong doubleとして解釈されます(浮動小数点指定子-e、E、f、g、Gにのみ適用されます)。

  • 追加引数-書式文字列に応じて、関数は追加の引数のシーケンスを期待する場合があり、それぞれに書式パラメータで指定された各%タグの代わりに1つの値が含まれます(存在する場合)。 これらの引数の数は、値を予期する%タグの数と同じでなければなりません。

戻り値

成功した場合、文字列の最後に追加されたヌル文字を除いて、書き込まれた文字の総数が返されます。それ以外の場合、失敗した場合は負の数が返されます。

次の例は、sprintf()関数の使用法を示しています。

#include <stdio.h>
#include <math.h>

int main () {
   char str[80];

   sprintf(str, "Value of Pi = %f", M_PI);
   puts(str);

   return(0);
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

Value of Pi = 3.141593