C语言函数学习之sprintf

函数说明:

字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。

函数原型:

int sprintf( char *buffer, const char *format, [ argument] … );

参数列表

***buffer***:char型指针,指向将要写入的字符串的缓冲区。
***format***:格式化字符串。
***[argument]..******.***:可选参数,可以是任何类型的数据。
返回值:字符串长度(strlen)
### 例子: #include int main(void) { char buffer[80]; sprintf(buffer, "My Name is %s\n", "Robert."); return 0; } 很简单的例子,最终buffer字符串会打印出`My Name is Robert.` printf函数和sprintf函数看起来很相似,其实用法也几乎相同,只是打印的目的地不同而已,前者打印到字符串中, 后者则直接在命令行上输出。所以sprintf函数在C语言编程中用到的更多。 printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。 - - - - - - sprintf函数的好用之处其实就在第二个参数[格式化字符串],灵活的运用它,几乎能达到你想要的任何结果。下面讲讲字符串转换: ### 转换说明符
%a(%A)浮点数、十六进制数字和p-(P-)记数法(C99)
%c字符
%d有符号十进制整数
%f浮点数(包括float和doulbe)
%e(%E)浮点数指数输出[e-(E-)记数法]
%g(%G)浮点数不显无意义的零"0"
%i有符号十进制整数(与%d相同)
%u无符号十进制整数
%o八进制整数    e.g.     0123
%x(%X)十六进制整数0f(0F)   e.g.   0x1234
%p指针
%s字符串
%%"%"
### 标志
% 表示格式说明的起始符号,不可缺少。
- -表示左对齐输出,如省略表示右对齐输出。
0表示指定空位填0,如省略表示指定空位不填。
m.n m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
lh l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
comments powered by Disqus