これは初心者の質問です。フォーマットされた C 文字列を作成するには、次printf
のように使用します。
int n = 10;
printf("My number is %i", 10);
しかし、どうですか:
int n = 10
char *msg = "My number is %i", 10;
printf(msg);
結果の書式設定された文字列を変数に格納するにはどうすればよいですか? 「私の番号は10」が欲しいです。
これは初心者の質問です。フォーマットされた C 文字列を作成するには、次printf
のように使用します。
int n = 10;
printf("My number is %i", 10);
しかし、どうですか:
int n = 10
char *msg = "My number is %i", 10;
printf(msg);
結果の書式設定された文字列を変数に格納するにはどうすればよいですか? 「私の番号は10」が欲しいです。
使用したいsnprintf()
:
int n = 10;
char bla[32]; // Use an array which is large enough
snprintf(bla, sizeof(bla), "My number is %i", n);
使用しないでくださいsprintf()
。これは に似てsnprintf
いますが、バッファー サイズ チェックを実行しないため、セキュリティ ホールと見なされます。
関数にメモリを割り当ててもらいたい場合は、asprintf()
代わりに次を使用できます。
int n = 10;
char *bla;
asprintf(&bla, "My number is %i", n);
// do something with bla
free(bla); // release the memory allocated by asprintf.
sprintf()を探しています。
int ret;
int n=10;
char msg[50]; /* allocate some space for string */
/* Creates string like printf, but stores in msg */
ret = sprintf(msg,"My number is %i",n);
printf(msg);
sprintf http://www.rohitab.com/discuss/topic/11505-sprintf-tutorial-in-c/のようなものを使用する必要があり ます。
基本的にはこのように使用されます (最初に msg 変数を malloc することを忘れないでください)
char* msg;
int ret = sprintf(msg,"My number is %i",10);
printf(msg);
使用sprintf
:
int n=10
char *msg ="My number is %i";
char bla[32]; // Use an array which is large enough
sprintf(bla, msg, n);