sprintf
1272 ワード
#include
int sprintf(char * str,const char * format,...);
フォーマットデータを文字列に書き込むのはprintfと同様で、指定したformatを使用して、対応する位置で同じtextで置き換えて文字列を構成します.printfとは異なり、コンソールに印刷されるのではなく、strが指すC stringの形式bufferに格納されます.
bufferのサイズは、生成された文字列全体を含むのに十分な大きさである必要があります.(snprintfの方が安全)
文字列の後に、終了する空白文字が自動的に追加されます.
formatパラメータの後、追加のパラメータはformatを指定する必要がある個数より小さくないでください.
パラメータ
str
生成されたC-stringバッファを格納するポインタバッファは、生成された文字列format
より大きくなければならないprintfと類似する%%%はパーセント記号を印刷し、変換しません.%c整数を対応するASCII文字に変換します.%d整数を10進位に変換する.%f倍精度数字を浮動小数点数に変換します.%o整数を8進位に変換します.%s整数を文字列に変換します.%x整数を小文字16進位に変換します.%X整数を大文字16進位に変換します.
...
異なるformat
に従って、関数は、対応する位置を置換できるformat
の値を含む一連の追加パラメータを必要とする場合がある.追加パラメータの個数は、format
パラメータ format
の個数より大きくなければならない.追加のパラメータは関数によって無視されます.戻り値
成功した場合、戻り値はbufferに書き込まれた総文字列の長さであり、最後に自動的に追加された空の文字は含まれません.失敗すると、負の数が返されます.
例
/* sprintf example */
#include
int main()
{
char buffer[50];
int n, a = 5, b = 3;
n = sprintf(buffer, "%d plus %d is %d", a, b, a + b);
printf("[%s] is a string %d chars long
", buffer, n);
return 0;
}