检查 argv 是否包含特定的文件扩展名

标签 c string argv

<分区>

我正在用 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/

相关文章:

c - Swift 与 C 结构指针

c - lirpm - 如何验证已安装包的签名 key

c - 尝试访问 C 中字符串数组的第一个字符时出现段错误

string - Grails 字符串替换不起作用?

python - 如何获取执行卡住脚本的路径

linux - 获取指向 argv[0] 的指针,以便我可以更改它

c - 我如何用逗号分隔的文件中的 double 值填充我的数组

c - 新手帮助(C语言)里面有详细说明

c - 指向数组遵从的指针

循环时无法比较数组上的字符串