c++中sprintf和sprintf_s的區別


參考:https://blog.csdn.net/qq_37221466/article/details/81140901

 

 

sprintf_s是sprintf的安全版本,指定緩沖區長度來避免sprintf()存在的溢出風險,主要差在sprintf_s第二個參數,可以控制緩沖區大小
sprintf/sprintf_s指的是字符串格式化命令,主要功能是把格式化的數據寫入某個字符串中。

sprintf 是個變參函數。使用sprintf 對於寫入buffer的字符數是沒有限制的,這就存在了buffer溢出的可能性

頭文件
stdio.h

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


參數列表
buffer:char型指針,指向將要寫入的字符串的緩沖區。

format:格式化字符串。

[argument]...:可選參數,可以是任何類型的數據。

 

頭文件
stdio.h

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

參數列表
buffer:char型指針,指向將要寫入的字符串的緩沖區。

sizeOfBuffer:緩沖區大小。

format:格式化字符串。

[argument]...:可選參數,可以是任何類型的數據。

例子:int x=42;

char str[256];

sprintf_s(str, 256, "%d", x);

 

 

 

 

 


————————————————
版權聲明:本文為CSDN博主「奔跑的大茄子」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_37221466/article/details/81140901


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM