我需要在循环的每次迭代中形成一个字符串,其中包含循环索引i
:
for(i=0;i<100;i++) {
// Shown in java-like code which I need working in c!
String prefix = "pre_";
String suffix = "_suff";
// This is the string I need formed:
// e.g. "pre_3_suff"
String result = prefix + i + suffix;
}
我尝试使用strcat
和itoa
的各种组合,但没有运气。
答案 0 :(得分:91)
字符串在C中很难。
int main()
{
int i;
char buf[12];
for (i = 0; i < 100; i++) {
snprintf(buf, 12, "pre_%d_suff", i); // puts string into buffer
printf("%s\n", buf); // outputs so you can see it
}
}
12
足以存储文本"pre_"
,文本"_suff"
,最多两个字符("99"
的字符串)和NULL终止符在C字符串缓冲区的末尾。
This会告诉您如何使用snprintf
,但我推荐一本好的C书!
答案 1 :(得分:5)
使用格式字符串sprintf
snprintf
(或"pre_%d_suff"
,如果像我一样,你无法计算)。
对于它的价值,用itoa / strcat你可以做到:
char dst[12] = "pre_";
itoa(i, dst+4, 10);
strcat(dst, "_suff");
答案 2 :(得分:0)