我正在创建一个基本上接收2个文件(.pal和.dic文件)的程序,并输出一个名为solution file(blabla.sol)的文件。但是,该解决方案文件的名称取决于程序收到的那些文件之一。如何修改程序以根据接收文件名称的名称更改输出文件的名称?在这种情况下,我希望它与我的name_pal文件名称相同。
这是我已编写的程序(现在,它只是输出一个具有固定名称的文件):
int main(int argc, char *argv[])
{
char name_dic[MAX_FILENAME_SIZE];
char name_pal[MAX_FILENAME_SIZE];
char name_sol[] = "prob0.sol";
char words_dic[MAX_WORD_SIZE];
char words_pal[MAX_WORD_SIZE];
char word_same_size[MAX_WORD_SIZE];
char dic_total[MAX_DIC_SIZE][MAX_WORD_SIZE];
char pal_total[MAX_PAL_SIZE][MAX_WORD_SIZE];
FILE *dic, *pal, *sol;
if (argc < 3)
{
printf("Missing files.\n");
exit(1);
}
strcpy(name_dic, argv[1]);
strcpy(name_pal, argv[2]);
dic = fopen(name_dic, "r");
if (dic == NULL)
{
printf("Can not open dictionary file: %s\n", name_dic);
exit(1);
}
pal = fopen(name_pal, "r");
if (pal == NULL)
{
printf("Can not open problem file: %s\n", name_pal);
exit(1);
}
sol = fopen(name_sol, "w");
if (sol == NULL)
{
printf("Can not open solution file: %s\n", name_sol);
exit(1);
}
/* rest of the code */
答案 0 :(得分:0)
您可以在&#39;。&#39;上编写截断功能。然后附加sol,如下面的代码段所示。
char name_sol[MAX_FILENAME_SIZE];
int i;
for(i=0;i<MAX_FILENAME_SIZE;i++){
name_sol[i]=name_pal[i];
if(name_sol[i]=='.') break;
}
strcpy(name_sol+i+1,"sol");
printf("%s\n",name_sol);