转载参考自:
https://www.cnblogs.com/finallyliuyu/archive/2010/08/27/1810071.html
https://blog.csdn.net/qq_37221466/article/details/81140901
sprintf_s是sprintf的安全版本,指定缓冲区长度来避免sprintf()存在的溢出风险,主要差在sprintf_s第二个参数,可以控制缓冲区大小
sprintf/sprintf_s指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。
sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性
头文件原型int sprintf( char *buffer, const char *format, [ argument] … ); 参数列表buffer:char型指针,指向将要写入的字符串的缓冲区。 format:格式化字符串。 [argument]...:可选参数,可以是任何类型的数据。 |
头文件原型int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format, 参数列表buffer:char型指针,指向将要写入的字符串的缓冲区。 sizeOfBuffer:缓冲区大小。 format:格式化字符串。 [argument]...:可选参数,可以是任何类型的数据。 |
例子:int x=42;
char str[256];
sprintf_s(str, 256, "%d", x);
double转换成string型
char str[100];
sprintf_s(str,sizeof(str),"%.2f",123456789.69999001);