を使用sprintf
して、各数値を文字列に変換できます(またstrcat
、必要に応じて次々に配置できます)。文字列がオーバーフローしないように、文字列の長さを追跡する必要があります。
例えば:
int var = 10;
char buf[20];
sprintf(buf, "%d", var); // buf string now holds the text 10
フォーマットと数値の量が設定されている場合は、これよりもはるかに複雑にする必要はありません。したがって、4つの数値の間に常に1つのスペースが必要な場合は、1つと次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'