snprintf使用注意點

2021-07-24 15:27:29 字數 628 閱讀 1458

snprintf雖然是被推薦使用的函式,但是在使用過程中,仍然有需要要注意的關鍵點

[cpp]view plain

copy

#include 

#include 

intmain(

void

)    

結果:  

[root@f8s extract_string]# ./test02  

string1 = girl-boy         // snprintf結果

string4 = man-girl-boy     // sprintf結果

1. 為什麼會出現如此大的差別呢?

2 .搜尋網路,大概有這樣的說明

int snprintf(char *str, size_t size, const char *format, ...);

snprintf函式的行為是不確定的,如果複製之間發生重疊的物件,就會產生很難預料的結果

例如,如果str也作為引數傳遞給%s

3. 所以,在使用函式snprintf時,千萬不可把str也作為引數傳遞給%s

說明:要是哪位高手知道根本原因,希望能夠分享哦!

使用snprintf時的兩點注意事項

使用snprintf函式時要注意兩點,這是我看過無數使用這個函式的程式設計師絕大部分都存在的兩點隱患 比如 char buf len int n snprintf buf,len,s d s str1,int2,str3 1.snprintf會自動在格式化後的字串尾新增 0,所有格式化長度,也就是第...

cy語言 snprintf使用及注意事項

int snprintf char str,size t size,const char format,引數解析 str 目標字串 size 拷貝位元組數 bytes format 格式化成字串 可變引數 需要注意的是引數size是拷貝的 字串 大小,就是說這個長度是包含了 0 的,所以如果size...

snprintf函式的使用

函式原型 int snprintf char str,size t size,const char format,功能 將可變個引數 按照format格式化成字串,然後將其複製到str中 1 如果格式化後的字串長度 size,則將此字串全部複製到str中,並給其後新增乙個字串結束符 0 2 如果格式...