【发布时间】:2020-03-07 02:16:53
【问题描述】:
我正在尝试创建一个从文件名中提取扩展名的函数。 file_name 指向一个包含文件名的字符串。该函数应将文件名的扩展名存储在扩展名指向的字符串中。例如,如果文件名为“memo.txt”,该函数会将“txt”存储在扩展名指向的字符串中。如果文件名没有扩展名,该函数应该在扩展名指向的字符串中存储一个空字符串(单个空字符)。
这就是我所拥有的:
#include <stdio.h>
void get_extension(char *file_name, char *extension);
int main(){
char *ex;
get_extension("hello.txt", ex);
char *p;
for(p = ex; *p != '\0'; p++){
printf("extension: %c", *p);
}
return 0;
}
void get_extension(char *file_name, char *extension){
char *p;
for (p = file_name; *p != '\0'; p++){
if(*p == '.'){
p++;
while(*p != '\0'){
*extension = *p;
p++;
extension++;
}
} *extension = '\0';
}
}
我不断收到分段错误错误,我不知道出了什么问题。 有人能帮助我吗? 谢谢!
【问题讨论】:
-
你有一个指针
ex,但是它指向哪里?当你做*extension = *p时,你在哪里写? -
这能回答你的问题吗? Getting file extension in C
标签: c segmentation-fault