c++中sprintf和sprintf_s的区别

转载自:https://blog.csdn.net/qq_37221466/article/details/81140901
在此感谢原做者,如下是原文:web


sprintf_s是sprintf的安全版本,指定缓冲区长度来避免sprintf()存在的溢出风险,主要差在sprintf_s第二个参数,能够控制缓冲区大小
sprintf/sprintf_s指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。安全

sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性svg


sprintf

头文件
stdio.h函数

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

参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。spa

format:格式化字符串。.net

[argument]…:可选参数,能够是任何类型的数据。指针


sprintf_s

头文件
stdio.horm

原型
int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format,
[argument] …);xml

参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。

sizeOfBuffer:缓冲区大小。

format:格式化字符串。

[argument]…:可选参数,能够是任何类型的数据。

例子:int x=42;

char str[256];

sprintf_s(str, 256, “%d”, x);

本文同步分享在 博客“doublepeng-Qian”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索