2017-02-15 16 views
0

Googleではこの特定のトピックでGoogle検索をどのように行うべきかわからないので、皆さんのお役に立てれば幸いです。私も名前の変数を得たCの引用で変数を使用する方法

fp = fopen("ELSO.html", "w"); 

:基本的に私はこのコードを持っている

私が欲しいもの

char name[25] = {"JohnShepard"}; 

は、名前がJohnShepardになるようにfopenを呼び出すことです。 html(すなわち、変数の内容)。そんなことも可能ですか?

+1

文字列連結関数 'strcat'を使用できます。 'fp = fopen(strcat(name、" .html ")、" w ");' – AntonH

+0

文字列の周りに中括弧は必要ありません。 – Barmar

+0

Antonさん、ありがとうございました。 –

答えて

5

strcatする代わりに、あなたはsnprintfを使用することができます。

char buffer[100]; 
char name[25] = "JohnShepard"; 

int i = snprintf(buffer, sizeof buffer, "%s.html", name); 
// "i" should now contain the length of string in "buffer" 

FILE *fp = fopen(buffer, "w"); 
// ... etc ... 

それは、出力バッファのサイズを提供する必要があるため、この方法はstrcatよりも安全です。十分なスペースがない場合、バッファーをオーバーランさせることはありません(これは危険です)。また、元の文字列は変更されませんが、重要かどうかはあなた次第です。

+1

バッファが小さすぎると、間違ったファイルが開かれますが、これはセキュリティ上の問題です –

関連する問題