您可以使用sprintf
将每个数字转换为字符串(并strcat
在必要时将它们一个接一个地放置)。您应该跟踪字符串的长度以确保不会溢出它。
例如:
int var = 10;
char buf[20];
sprintf(buf, "%d", var); // buf string now holds the text 10
如果你有一个固定的格式和数量,你不需要让它比这更复杂。所以如果你总是需要在四个数字之间留一个空格,你可以用一个sprintf
和一个格式字符串来完成这一切"%d %d %d %d"
(尽管这需要一个更大的字符数组)。
编写一个添加到现有字符串的小型实用程序函数很容易,例如:
int add_to_string(char *buf, size_t sz, int num)
{
char tmp[20];
sprintf(tmp, " %d", num);
size_t len = strlen(tmp) + strlen(buf) + 1;
if (len > sz)
return -1;
strcat(buf, tmp);
return 0;
}
你会打电话给类似的东西:
char buf[100];
sprintf(buf, "%d", 42);
add_to_string(buf, sizeof(buf), 9);
add_to_string(buf, sizeof(buf), 15);
add_to_string(buf, sizeof(buf), 8492);
add_to_string(buf, sizeof(buf), 35);
printf("String is '%s'\n", buf);
Output:
String is '42 9 15 8492 35'