使用 snprintf 复制数组中的字符

标签 c arrays printf

我正在尝试在数组中打印“hello”,但使用标准函数 snprintf 沿对角线打印:

这是我编写但不起作用的代码可能表明我做错了:

int main(void)
{
    int i, u;
    char buff[26] = {0};
    char abc[] = "hello";

    for (i = 0, u = 0; i < 6; i++, u++)
        snprintf(buff+u, 6, "%*c\n%c", u, abc[i],  i);
    puts(buff);

    return 0;
}

输出应该是:

h
 e
  l
   l
    o

谢谢

最佳答案

改为

for (i = 0, u = 0; i < 5; i++)
    u += snprintf(buff+u, sizeof(buff) - u, "%*c\n", i+1, abc[i]);

关于使用 snprintf 复制数组中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978954/

相关文章:

c - 没有指针的段错误?

c++ - 在 C++/C 中在后台运行周期性循环

c - 在 C 中从 'char' 到 'int* 的无效转换

php - 使用 PHP 迭代器的嵌套列表?

javascript - SetInterval 函数中的随机数未更新

arrays - struct 中的一个元素数组

带有 C 接口(interface)的 C++ 库

c++ - 使用 snprintf() 的 Fencepost 条件和可移植性?

c++ - 如果我在代码的 printf 部分中使用 %s 而不是 %c,代码背后的解释

c - 为什么下面的代码会给出这个输出?