C語言snprintf 函式用法

2021-08-09 20:40:06 字數 1138 閱讀 7285

一、函式原型

snprintf(),為函式原型int snprintf(char *str, size_t size, const char *format, ...)。

二、函式介紹

將可變個引數(...)按照format格式化成字串,然後將其複製到str中

(1) 如果格式化後的字串長度 < size,則將此字串全部複製到str中,並給其後新增乙個字串結束符('\0');

(2) 如果格式化後的字串長度 >= size,則只將其中的(size-1)個字元複製到str中,並給其後新增乙個字串結束符('\0'),返回值為欲寫入的字串長度。

三、執行例項

#include int main () ;

i = snprintf(a, 13, "%012d", 12345); // 第 1 種情況

printf("i = %lu, a = %s\n", i, a); // 輸出:i = 12, a = 000000012345

i = snprintf(a, 9, "%012d", 12345); // 第 2 種情況

printf("i = %lu, a = %s\n", i, a); // 輸出:i = 12, a = 00000001

i = snprintf(path, sizeof(path), "%s/%s.%s.so","/system/lib64/hw/love", "tanghanyue", "default");

printf("i = %lu, path = %s\n", i, path); // 輸出:i = 43, path = /system/lib64/hw/love/tanghanyue.default.so

return 0;

}

執行結果:

wfh@host8888:~$ ./snprintf

i = 12, a = 000000012345

i = 12, a = 00000001

i = 43, path = /system/lib64/hw/love/tanghanyue.default.so

snprintf函式用法

int snprintf char restrict buf,size t n,const char restrict format,函式說明 最多從源串中拷貝n 1個字元到目標串中,然後再在後面加乙個0。所以如果目標串的大小為n的話,將不會溢位。函式返回值 若成功則返回欲寫入的字串長度,若出錯則返...

snprintf函式用法

int snprintf char restrict buf,size t n,const char restrict format,函式說明 最多從源串中拷貝n 1個字元到目標串中,然後再在後面加乙個0。所以如果目標串的大小為n的話,將不會溢位。函式返回值 若成功則返回欲寫入的字串長度,若出錯則返...

snprintf函式用法

int snprintf char restrict buf,size t n,const char restrict format,函式說明 最多從源串中拷貝n 1個字元到目標串中,然後再在後面加乙個0。所以如果目標串的大小為n 的話,將不會溢位。函式返回值 若成功則返回欲寫入的字串長度,若出錯則...