【发布时间】:2022-01-12 14:43:32
【问题描述】:
我正在尝试将整数添加到字符串中。当我调试我的代码时,一切正常,但是当我正常运行它时,在字符串的开头会打印两个不需要的字符。我该如何避免这种情况?
int number_of_ints = 5;
char s[number_of_ints*2];
char suffix[4];
for(int i = 1; i <= number_of_ints; i++){
snprintf(suffix, number_of_ints, "%d*", i);
strncat(s, suffix, 2);
printf("%s\n", s);
}
这是正常构建和运行代码时的输出。
`û1*
`û1*2*
`û1*2*3*
`û1*2*3*4*
`û1*2*3*4*5*
【问题讨论】:
-
您必须初始化
s。您必须为空终止符分配空间。 -
snprintf的长度参数没有意义。suffix只能保存长度为 3 的字符串。
标签: arrays c string char concatenation