2010-12-05 12 views
2

書式指定子を使用して文字列を作成できる標準のC関数はありますか?Cで書式指定子を使用して文字列を作成する

今、私はこれをやっている:

char buffer[256]; 
char *name = "Fred"; 
strcpy(buffer, "Hello, "); 
strcat(buffer, name); 
strcat(buffer, ". How are you today?\n"); 

は、1つの関数にバッファにメッセージを追加する方法はありますか?

このような何か:それを使用するときにはsprintfはセーフ機能ではなく、buffer overflowsに苦しむ可能性があるため

makestr(buffer, "Hello, %s. How are you today?\n", name); 

答えて

8

sprintf

は注意してください。

+1

私はsprintfが安全でないというばかげた論争のためではありませんでしたか?あなたが何をしているのか分かっていて、自分が何をしているのかわからない人がC :-)の代わりにBASICを使用しているべきであれば、完全に安全です。 – paxdiablo

+0

バッファオーバーフローの危険を避けるためにsnprintfをお勧めしますか? – mouche

1

sprintfあなたに役立つでしょうか?リンク: sprintf

関連する問題