<分区>
我正在用 C 编写一个程序,该程序将参数作为输入。是否可以检查您的 argv 是否包含特定的文件扩展名?比如检查 argv 中的任何 char* 是否以 .jpeg 或类似的结尾? (任何示例代码将不胜感激:))
<分区>
我正在用 C 编写一个程序,该程序将参数作为输入。是否可以检查您的 argv 是否包含特定的文件扩展名?比如检查 argv 中的任何 char* 是否以 .jpeg 或类似的结尾? (任何示例代码将不胜感激:))
最佳答案
您可以使用 strrchr
查找最后一个 .
然后将扩展名与 strcmp
进行比较
int found = 0;
char *p = strrchr(argv[1], '.');
if (p)
found = strcmp(p, ".jpeg") == 0;
或者,从字符串末尾取出扩展的长度并比较它
const char *ext = ".jpeg";
size_t xlen = strlen(ext);
size_t slen = strlen(argv[1]);
int found = strcmp(argv[1] + slen - xlen, ext) == 0;
这也适用于像 .tar.gz
这样的情况。
关于检查 argv 是否包含特定的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19989120/