有没有办法使用C sprintf()函数而不在其输出的末尾添加'\ 0'字符?我需要在固定宽度字符串的中间写入格式化文本.
没有办法告诉sprintf()
不要写尾随空值.你可以做的是sprintf()
用来写一个临时字符串,然后像strncpy()
只复制你想要的字节.
sprintf返回写入的字符串的长度(不包括空终端),您可以使用它来知道空终端的位置,并将空终端字符更改为其他位置(即空格).这比使用strncpy更有效.
unsigned int len = sprintf(str, ...); str[len] = '';