当前位置:  开发笔记 > 编程语言 > 正文

sprintf()没有在C中尾随空格

如何解决《sprintf()没有在C中尾随空格》经验,为你挑选了2个好方法。

有没有办法使用C sprintf()函数而不在其输出的末尾添加'\ 0'字符?我需要在固定宽度字符串的中间写入格式化文本.



1> Greg Hewgill..:

没有办法告诉sprintf()不要写尾随空值.你可以做的是sprintf()用来写一个临时字符串,然后像strncpy()只复制你想要的字节.


Roddy:snprintf函数总是为null终止其输出.如果将大小n传递给snprintf,它将写入最多n-1个字符,后跟一个尾随'\ 0'.

2> Doug T...:

sprintf返回写入的字符串的长度(不包括空终端),您可以使用它来知道空终端的位置,并将空终端字符更改为其他位置(即空格).这比使用strncpy更有效.

 unsigned int len = sprintf(str, ...);
 str[len] = '';

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有