【问题标题】:Sprintf: pad with '\0' character instead of spaceSprintf:用 '\0' 字符而不是空格填充
【发布时间】:2015-12-07 10:52:54
【问题描述】:

与我的问题here有关:以下代码

sprintf(buffer, "%-16s%-224s%-8s%-8s", "set", "ravi", "26", "60");

...填充空格。我需要用'\0' 字符而不是空格来填充。这可以实现吗?

【问题讨论】:

  • 只用 sprintf 就可以轻松搞定,这是不可能的。

标签: c null printf padding


【解决方案1】:

您可以通过以下循环实现此目的:

int i;
sprintf(buffer, "%-16s%-224s%-8s%-8s", "set", "ravi", "26", "60");
for (i=0;i<sizeof(buffer);i++)
{
     if (buffer[i] == ' ') buffer[i] = '\0';
}

【讨论】:

  • 所以你的意思是没有直接的解决方案。我们必须手动实现它
  • 正确。或者,您可以更改 sprintf 函数,但我不建议这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
  • 2011-06-07
  • 2017-02-24
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多