原文吃光光
先說我認為的答案:
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'
以上