看板 C_and_CPP 關於我們 聯絡資訊
原文吃光光 先說我認為的答案: 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
apologize: 我查http://0rz.tw/eIwzW 02/05 14:49
apologize: stdio.h 沒有阿,請問這函式是放哪邊? 02/05 14:50
qsort: 打個manual snprintf都蠻一堆 02/05 16:50
qsort: 如果你的c lib沒有,一定是太舊了,請換一套 02/05 16:52
EdisonX: 我有點看不懂 %.*s 和 %*s 有什麼不同?乍看是相同的? 02/06 21:41
LPH66: %5s 是最短印 5 個字 (不夠會補), %.5s 是最多印 5 個字 02/06 23:53
EdisonX: 原來如此 謝謝LPH66。那有沒有固定5個字,超過的話,{ 02/07 10:17
EdisonX: 顯示二個字,再加上刪節符號...}?還是只能寫function? 02/07 10:17
uranusjr: 這種只能寫 function, 別說 C 了高階語言都不見得有 02/07 15:39
EdisonX: 也是 我在天真什麼 XD 02/07 20:16