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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索