原文吃光光
先说我认为的答案:
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'
以上