Re: [問題] 用memcpy 會有殘餘值怎麼辦?

看板C_and_CPP (C/C++)作者 (Cos)時間10年前 (2016/02/04 16:44), 10年前編輯推噓5(505)
留言10則, 5人參與, 最新討論串3/3 (看更多)
原文吃光光 先說我認為的答案: snprintf(buff, buff_size, "%.*s", token_len, token); //配合原文: snprintf(Ptr->ListString,ListString_size,"%B.*s",Length,CharPtr); ref: http://stackoverflow.com/a/5932385 如果有字串相接的需求 不要用strcat,因為不安全,容易Buffer overflow 我個人是推薦: int l=0; l+=snprintf(buff+l,buff_size-l, "%s", str1); //strcat(buff, str1); l+=snprintf(buff+l,buff_size-l, "%s", str2); //strcat(buff, str2); 好處是buff不用清空,只要把l設成0即可 同時snprintf(...)保證最後結尾一定是'\0' 以上 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.29.28 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1454575486.A.8B7.html ※ 編輯: qsort (210.61.29.28), 02/04/2016 16:45:15 ※ 編輯: qsort (210.61.29.28), 02/04/2016 16:52:37 ※ 編輯: qsort (210.61.29.28), 02/04/2016 17:00:02

02/05 14:49, , 1F
02/05 14:49, 1F

02/05 14:50, , 2F
stdio.h 沒有阿,請問這函式是放哪邊?
02/05 14:50, 2F

02/05 16:50, , 3F
打個manual snprintf都蠻一堆
02/05 16:50, 3F

02/05 16:52, , 4F
如果你的c lib沒有,一定是太舊了,請換一套
02/05 16:52, 4F

02/06 21:41, , 5F
我有點看不懂 %.*s 和 %*s 有什麼不同?乍看是相同的?
02/06 21:41, 5F

02/06 23:53, , 6F
%5s 是最短印 5 個字 (不夠會補), %.5s 是最多印 5 個字
02/06 23:53, 6F

02/07 10:17, , 7F
原來如此 謝謝LPH66。那有沒有固定5個字,超過的話,{
02/07 10:17, 7F

02/07 10:17, , 8F
顯示二個字,再加上刪節符號...}?還是只能寫function?
02/07 10:17, 8F

02/07 15:39, , 9F
這種只能寫 function, 別說 C 了高階語言都不見得有
02/07 15:39, 9F

02/07 20:16, , 10F
也是 我在天真什麼 XD
02/07 20:16, 10F
文章代碼(AID): #1Mimz-Yt (C_and_CPP)
文章代碼(AID): #1Mimz-Yt (C_and_CPP)