sprintf() — フォーマット設定データのバッファーへの出力

形式

#include <stdio.h>
int sprintf(char *buffer, const char *format-string, argument-list);

言語レベル

ANSI

スレッド・セーフ

はい

ロケール依存

この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーおよび LC_NUMERIC カテゴリーの影響を受ける可能性があります。 また、この振る舞いは、LOCALETYPE(*LOCALEUCS2) または LOCALETYPE(*LOCALEUTF) がコンパイル・コマンドに対して指定されている場合は、現行ロケールの LC_UNI_CTYPE カテゴリーの影響を受ける可能性もあります。 詳しくは、 CCSID とロケールについてを参照してください。

説明

sprintf() 関数は、一連の文字と値をフォーマット設定し、配列 bufferに保管します。 すべての argument-list は、format-string の対応する形式指定に従って変換され、出力されます。

format-string は通常の文字で構成され、 printf() 関数の format-string 引数と同じ形式と関数を持ちます。

戻り値

sprintf() 関数は、配列に書き込まれたバイト数を戻します。終了ヌル文字はカウントしません。

この例では、 sprintf() を使用して、さまざまなデータをフォーマット設定し、印刷します。
#include <stdio.h>
 
char buffer[200];
int i, j;
double fp;
char *s = "baltimore";
char c;
 
int main(void)
{
   c = 'l';
   i = 35;
   fp = 1.7320508;
 
   /* Format and print various data */
   j = sprintf(buffer, "%s\n", s);
   j += sprintf(buffer+j, "%c\n", c);
   j += sprintf(buffer+j, "%d\n", i);
   j += sprintf(buffer+j, "%f\n", fp);
   printf("string:\n%s\ncharacter count = %d\n", buffer, j);
}
 
/*********************  Output should be similar to:  *************
 
string:
baltimore
l
35
1.732051
 
character count = 24           */

関連情報