2
を含む文字列をC言語で構築するにはどうすればよいですか?それにはfprintf
の構文と似た方法がありますか?例えば、ここで少しtestProg.c
です:fprintf構文のように文字列を定義する
int main(int argc, char *argv[]) {
printf("You are running %s program.\n", argv[0]);
// It will print: "You are running testProg.c program.\n"
char myString[];
// I want the string printed by printf to be saved inside myString[]
// ...
}
それはそのように見えるsnprintfの機能は、私が探していたまさにです!配列のサイズとして '100'を使用する代わりに、正確なサイズを使用する方法はありませんか?ありがとう! – Robb1
とにかく(静的にも動的にでも)バッファサイズを割り当てる必要があります。そのような単純な場合、静的バッファは – artm
で十分です。動的またはVLA割り当てを使用する場合は、 'snprintf'は書き込まれた文字数を返します。文字列が切り捨てられた場合、バッファーが十分に大きい場合に書き込まれた文字数が返されます。サイズが0のときにバッファとして 'NULL'を渡すことは正当です。' n = snprintf(NULL、0、...) 'を最初に呼び出し、' n + 1'バイトを割り当ててから再び 'snprintf'を呼び出してくださいバッファとその正しいサイズで –