2015-12-06 · 做真实的自己 用良心做教育
sprintf函数的功能是把格式化的数据写入某个字符串缓冲区。
int sprintf( char *buffer, const char *format, [ argument] … );
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据。
示例
int main()
{
char buffer[50];//大小50的char字符数组
int n,a=5,b=3;//
n=sprintf(buffer,"%d + %d = %d",a,b,a+b);//把a,b,a+b以第二个参数的形式写入buffer
printf("[%s]is a string %d chars long\n",buffer,n);/*“格式输出函数”*/
return 0;
}
输出结果[5 + 3 = 8] is a string 13 chars long
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数][标识符][宽度][.精度]指示符
若想输出'%'本身时, 请使用'%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
转换字符
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
头文件: stdio.h函数原型: int sprintf( char *buffer, const char *format, [ argument] … );参数列表: buffer:char型指针,指向欲写入的字符串地址。
format:char型指针,指向的内存里面存放了格式字符串。
[argument]...:可选参数,可以是任何类型的数据。
返回值:字符串长度(strlen)
相关函数: int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format, [argument] ... );
int _sprintf_s_l(char *buffer,size_t sizeOfBuffer,const char *format,locale_t locale ,[argument] ... );
int swprintf_s(wchar_t *buffer,size_t sizeOfBuffer,const wchar_t *format ,[argument]...);
int _swprintf_s_l(wchar_t *buffer,size_t sizeOfBuffer,const wchar_t *format,locale_t locale ,[argument]…);
template <size_t size>
int sprintf_s(char (&buffer)[size],const char *format, [argument] ... ); //仅存在于C++
template <size_t size>
int swprintf_s(wchar_t (&buffer)[size],const wchar_t *format ,[argument]...); //仅存在于C++
编辑本段参数说明及应用举例 sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数][标识符][宽度][.精度]指示符
若想输出`%'本身时, 请这样`%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
参考资料: http://baike.baidu.com/view/1295144.htm
函数原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字符串长度(strlen)
例子:
char* i = "I";
char* j= "apple";
sprintf(s, "%s like %s.", i, j); //产生:"i like apple. " 这字符串写到s中
sprintf(s, "%d", 123); //产生"123" //把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142",%f 倍精确度数字转成浮点数