c - 斯普林特夫 : pad with '\0' character instead of space

标签 c null printf padding

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

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

...填充空白区域。我需要用 '\0' 字符而不是空格填充。这能实现吗?

最佳答案

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

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';
}

关于c - 斯普林特夫 : pad with '\0' character instead of space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551160/

相关文章:

C : Printing big numbers

c - systeminfo 如何打印行?

c++ - C 读取文件时出错

c++ - 列出所有打开的文件

c - 为什么我的fgets方法变成这样了?

r - 在R的clogit中创建一个空模型

c - 寻找整数数组中的最小元素

c# - 为什么这个字符串扩展方法没有抛出异常?

JSF EL - 用默认值替换 null

C - 使用 sprintf() 在字符串中添加前缀