【发布时间】:2013-10-30 02:22:24
【问题描述】:
我必须在 C 中创建一个可以将文件扩展名交换为另一个的函数。例如:
swapExtension("myFile.c", "o");
原型是:
char * swapExtension(char * fileName, char * fileExtension).
除了段错误,我什么也没得到。我的代码是:
{
char * temp = strchr(fileName, '.');
printf("%s",temp);
strncpy(temp, nouvelleExtension, 2);
}
【问题讨论】:
-
您可能正在传递一个指向文字字符串“myFile.c”的指针,然后在您的函数中写入它。根据平台的不同,这很容易发生段错误。您必须创建一个缓冲区来处理,并在那里操作字符串。
-
请不要在 SO 上使用脏话;谢谢@hopper
-
nomFic 是文件名,我刚刚修好了。
-
尝试使用:char filename[] = "myFile.c";并调用 swapExtension(filename, "o");这样,您将声明一个使用字符串字符初始化并调整为文字字符串大小的 char 数组。警告:如果您尝试编写更长的扩展名(例如“.c”文件名上的“.obj”),这将给您带来错误。更多信息:stackoverflow.com/a/164229/253111
-
检查空指针
if(temp == NULL) { printf("Null string");}。这将为您提供有关代码中发生了什么的线索。
标签: c char file-extension