sprintf是什么

づ 花飞半掩门2020-10-12

sprintf是字符串格式化命令,把格式化的数据写入某个字符串中,即发送格式化输出到string所指向的字符串。sprintf是个变参函数。使用sprintf对于写入buffer的字符数是没有限制的,存在buffer溢出可能性。

sprintf 指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,…]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用 sprintf 对于写入 buffer 的字符数是没有限制的,这就存在了 buffer 溢出的可能性。解决这个问题,可以考虑使用 snprintf 函数,该函数可对写入字符数做出限制。

sprintf是什么

sprintf 函数语法

函数声明

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

参数列表

string– 这是指向一个字符数组的指针,该数组存储了 C 字符串。

format– 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是%[flags][width][.precision][length]specifier

功能

把格式化的数据写入某个字符串缓冲区。

返回值

如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。

sprintf 返回以 format 为格式 argument 为内容组成的结果被写入 string 的字节数,结束字符‘’不计入内。即,如果“Hello”被写入空间足够大的 string 后,函数 sprintf 返回 5。

猜你喜欢