ページ 11

ファイル名を変数で

Posted: 2010年11月27日(土) 22:54
by ynhrt
C言語でファイルを出力するときに、ファイル名に変数を使ったり、ファイル名のあとに変数を付け加えたりしたいのですがどのようにしたらよいでしょうか?

例えば  int a = 100; だとしたら
ファイル名を100として出力したり、
もともと abc というファイルがあったら、それを abc100 などにしたいのです。

お願いします。

Re: ファイル名を変数で

Posted: 2010年11月27日(土) 23:08
by bitter_fox

コード:

char *file_name = (char*)calloc(strlen("ABC")+1, sizeof(char));
char *buf_str;
int n = 100;

strcpy(file_name, "ABC");

buf_str = (char*)calloc(4, sizeof(char));
sprintf(buf_str, "%d", n);

////////////////////////////////////////////////////////////////////
file_name = (char*)realloc(file_name, (strlen(file_name) + strlen(buf_str)+1)*sizeof(char));
strcat(file_name, buf_str);
////////////////////////////////////////////////////////////////////
上のコードで追加できます。

まず、realloc()で領域を拡張します、strlen(file_name) + strlen(buf_str) + 1 はfile_nameの長さに、追加する文字列の長さと\0文字分を足してます。

-----------------------------------------------------------------------------------------------------------------------------
一部コードにミスがあったので修正。