假设有一个名为12345.jpg的文件。 在C中,如何获取文件扩展名以便与某些文件扩展名进行比较? 如果有任何内置function,请告诉我。
这样做的function,以及测试工具:
#include #include const char *getExt (const char *fspec) { char *e = strrchr (fspec, '.'); if (e == NULL) e = ""; // fast method, could also use &(fspec[strlen(fspec)]). return e; } int main (int argc, char *argv[]) { int i; for (i = 1; i < argc; i++) { printf ("[%s] - > [%s]n", argv[i], getExt (argv[i])); } return 0; }
运行此:
./program abc abc. abc.1 .xyz abc.def abc.def.ghi
给你:
[abc] - > [] [abc.] - > [.] [abc.1] - > [.1] [.xyz] - > [.xyz] [abc.def] - > [.def] [abc.def.ghi] - > [.ghi]
大概:
#include char *extn = strrchr(filename, '.');
这将为您提供指向扩展周期的指针,如果没有扩展名则为空指针。 您可能需要做更多的尽职调查,以确保点之后没有斜线,等等。
有一个便携式CRT解决方案: _splitpath 。
在windows中还有一个名为PathGetExtension的未记录的shell32 API,但这在许多方面都是邪恶的,我可能不应该注意到这一点。
使用strchr第一个数组成员将为您提供文件名第二个数组成员将为您提供扩展名
以上就是c/c++开发分享用C语言获取文件扩展名相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/545553.html