snprintf 函式使用方法

2021-09-10 16:11:01 字數 964 閱讀 7484

函式定義如下:

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...