sprintf
sprintf指的是字符串格式化命令,函数声明为int sprintf(char*buffer,const char*format,[argument]… )1。
sprintf的主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到string所指向的字符串。sprintf是个变参函数。使用sprintf对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以考虑使用snprintf函数,该函数可对写入字符数做出限制1。
基本信息
- 中文名
字符串格式输出
- 外文名
sprintf
- 特点
变参函数
- 功能
把格式化的数据写入某个字符串中
- 头文件
stdio.h
- 原型
int sprintf
- 返回值
字符串长度
sprintf函数语法
函数声明
int sprintf(char *string, char *format [,argument,...]);
参数列表
string-- 这是指向一个字符数组的指针,该数组存储了 C 字符串。
format-- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是%[flags][width][.precision][length]specifier
[argument]...:根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。
功能
把格式化的数据写入某个字符串缓冲区。
返回值
如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
sprintf 返回以format为格式argument为内容组成的结果被写入string的字节数,结束字符‘\0’不计入内。即,如果“Hello”被写入空间足够大的string后,函数sprintf 返回52。
说明及应用
例子
输出结果:
Output:
String: computer
Character: l
Integer: 35
Real: 1.732053
character count = 79