格式
int sprintf (char * str, const chat * format, ...);
sprintf 格式的組成和 printf 的使用一樣,不一樣的是可以將 C 的字串組合後,藉由指向 char 的 pointer str 存入 buffer 內容中。
要注意這裡使用的 buffer 應該要夠大,才能夠放進組合後整個字串的大小。
str:指向 buffer 的 pointer,用來儲存字串。大小應該要足夠存放運算結果的字串。
format:與 printf 的格式相同, %d, %x, %s, ...
Return Value:函數前面的型態是 int,代表回傳值會是一個 int ,如果函數執行成功,會回傳寫進的字元的總數
---------------------
#include <stdio.h>
char buffer[20]; // the number of result that both added cant larger than 20 bytes
char string[] = "TEXT";
int number = 1234;
main()
{
sprintf( buffer, "%s, + %d \n" , string, number);
printf("print result : %s \n",buffer);
return 0;
}
--------------------
另外看 printf 的格式有哪些
#include <stdio.h>
int main()
{
printf ("Characters: %c %c \n", 'a', 65);
printf ("Decimals: %d %ld\n", 1977, 650000L);
printf ("Preceding with blanks: %10d \n", 1977);
printf ("Preceding with zeros: %010d \n", 1977);
printf ("Some different radixes: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
printf ("Width trick: %*d \n", 5, 10);
printf ("%s \n", "A string");
return 0;
}
D:\cp\code>gcc printf.c -o printf
D:\cp\code>printf
Characters: a A
Decimals: 1977 650000
Preceding with blanks: 1977
Preceding with zeros: 0000001977
Some different radixes: 100 64 144 0x64 0144
floats: 3.14 +3e+000 3.141600E+000
Width trick: 10 A string
http://programmermagazine.github.io/201401/htm/article2.html
D:\cp\code>gcc printf.c -o printf
D:\cp\code>printf
Characters: a A
Decimals: 1977 650000
Preceding with blanks: 1977
Preceding with zeros: 0000001977
Some different radixes: 100 64 144 0x64 0144
floats: 3.14 +3e+000 3.141600E+000
Width trick: 10 A string
符號 | 說明 | 範例 |
---|---|---|
c | 字元 (char) | a |
d | 整數 (Decimal integer) | 372 |
i | 整數 (Decimal integer) (同 d) | 372 |
f | 浮點數 (Floating Point) | 372.56 |
e | 科學記號 (Scientific notation) | 3.7256e+2 |
E | 科學記號 (Scientific notation) | 3.7256E+2 |
g | 取浮點數或科學記號當中短的那個 | 372.56 |
G | 取浮點數或科學記號當中短的那個 | 372.56 |
o | 八進位 (Octal Integer) | 735 |
s | 字串 (String) | 372 |
u | 無號數 (unsigned integer) | 372 |
x | 十六進位 (Hexadecimal integer) | 3fb |
X | 十六進位 (Hexadecimal integer) | 3FB |
p | 指標位址 | B800:0000 |
n | 不列印, 用來取得目前輸出長度 | %n |
% | 印出 % 符號 | %% |
參考
http://programmermagazine.github.io/201401/htm/article2.html
沒有留言:
張貼留言