函式定義如下:
int snprintf(char*str, size_t size,constchar*format, ...);
函式功能:先將可變引數 「…」 按照format的格式格式化為字串,然後再將其拷貝至dest_str中。
注意事項:如果格式化後的字串長度小於size,則將字串全部拷貝至dest_str中,並在字串結尾處加上『\0』;
如果格式化後的字串長度大於或等於size,則將字串的(size-1)拷貝至dest_str中,然後在字串結尾處加上』\0』.
函式返回值是: 若成功則返回欲寫入的字串長度,若出錯則返回負值。
例項:
#include
#include
#include
int main
(void
)
執行結果
字串:linux
c程式設計
長度是:15
今天是:2023年9月8日
對於返回值需要注意的是snprintf的返回值是欲寫入的字串(即源字串)長度,而不是實際寫入的字串度。如:
char test[8]
; int ret=
snprintf
(test,5,
"1234567890");
printf
("%d|%s\n"
,ret,test)
;
執行結果為:
10|1234
linux和windows下是不同的
linux下用的是snprintf();
而windows下用的是_snprintf();
snprintf 函式使用方法
眾所周知,sprintf不能檢查目標字串的長度,可能造成眾多安全問題,所以都會推薦使用snprintf.intsnprintf char str,size t size,constchar format,函式說明 最多從源串中拷貝size 1個字元到目標串中,然後再在後面加乙個0。所以如果目標串的大...
snprintf 函式使用方法
眾所周知,sprintf不能檢查目標字串的長度,可能造成眾多安全問題,所以都會推薦使用snprintf.自從snprintf代替了sprintf,相信大家對snprintf的使用都不會少,函式定義如下 intsnprintf char str,size t size,const char forma...
snprintf 函式使用方法
眾所周知,sprintf不能檢查目標字串的長度,可能造成眾多安全問題,所以都會推薦使用snprintf.自從snprintf代替了sprintf,相信大家對snprintf的使用都不會少,函式定義如下 int snprintf char str,size t size,constchar forma...