获取文件扩展名C
const char *get_filename_ext(const char *filename) {
const char *dot = strrchr(filename, '.');
if(!dot || dot == filename) return "";
return dot + 1;
}
printf("%s\n", get_filename_ext("test.tiff"));
printf("%s\n", get_filename_ext("test.blah.tiff"));
printf("%s\n", get_filename_ext("test."));
printf("%s\n", get_filename_ext("test"));
printf("%s\n", get_filename_ext("..."));
'dot = strrchr(filename,'。');','dot!= NULL'后暗示'* dot =='。''因此您的测试应该简单'如果(点)'。 – 2011-03-15 09:07:00
我收到一个错误:'renamer.c:11:警告:不兼容隐式声明的内置函数'strrchr'' – errorhandler 2011-03-15 09:08:57
'#include
您可以使用strrchr
函数搜索字符串中最后一次出现的字符,以找到最终的点。从那里,你可以读取字符串的其余部分作为扩展名。
查找与strrchr
最后的点,然后提前1焦炭
#include <stdio.h> /* printf */
#include <string.h> /* strrchr */
ext = strrchr(filename, '.');
if (!ext) {
/* no extension */
} else {
printf("extension is %s\n", ext + 1);
}
没有必要复制它 - 您将返回一部分以原始字符串结尾的字符串,因此不需要进行任何修改。 – ThiefMaster 2011-03-15 09:11:14
复制删除,谢谢 – pmg 2011-03-15 09:13:30
[C语言入门文件扩展名]的可能的复制(http://*.com/questions/3035225/getting-文件扩展名为c语言) – nibot 2017-03-04 18:15:30