【问题标题】:How do I append a formatted string into an array?如何将格式化的字符串附加到数组中?
【发布时间】:2015-09-20 15:57:06
【问题描述】:

我有以下几点:

char rank[100][100];
int score = 5;

strcpy(rank[0], "%d" score);

但是,strcpy() 不接受这些参数。有没有办法将格式化的字符串附加到我的数组中?

【问题讨论】:

  • 你想要snprintf
  • 是追加还是复制?对 sprintf 家族有类似的疑问,除非处理得非常小心,否则会提供非常不寻常的结果
  • strcpy() 不评估格式说明符。阅读 strcpy() 的手册页将使您了解详细信息。 sprintf() 确实评估格式说明符。建议将strcpy 替换为sprintf 并使用适当的参数

标签: c arrays string strcpy


【解决方案1】:

你可以使用sprintf:

char rank[100][100];
int score;

sprintf(rank[0], "%d", score);

但请注意,snprintf 是缓冲区溢出安全替代方案。

【讨论】:

  • 最好使用int w = snprintf(rank[0], sizeof(rank[0]), "%d", score); 然后测试w 是否小于sizeof(rank[0]) - 实际上总是会是这样
【解决方案2】:

strcpy() 没有直接的方法可以做到这一点。

但是,您可以先使用snprintf() 来准备您的字符串,并且使用与strcpy() 的第二个参数相同。

FWIW,在这种情况下,你也可以直接在rank[n]上使用snprintf()

【讨论】:

    猜你喜欢
    • 2015-04-04
    • 2018-12-23
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2023-01-19
    相关资源
    最近更新 更多