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

时间:2013-11-14 21:49:49

标签: c string argv

我正在研究C中的一个程序,该程序将参数作为输入。是否可以检查您的argv是否包含特定的文件扩展名?比如检查argv中的任何char *是否以.jpeg或类似的结尾? (任何示例代码将非常感谢:))

2 个答案:

答案 0 :(得分:3)

您可以使用strrchr查找上一个.,然后将扩展名与strcmp进行比较

int found = 0;
char *p = strrchr(argv[1], '.');
if (p)
    found = strcmp(p, ".jpeg") == 0;

答案 1 :(得分:0)

bool ends_with(char const *str, char const *suffix)
{
    size_t l0 = strlen(str);
    size_t l1 = strlen(suffix);

    if (l0 < l1)
        return false;

    return strcmp(str + l0 - l1, suffix) == 0;
}

int main(int argc, char *argv[])
{
    int i;

    for (i = 1; i < argc; ++i) {
        if (ends_with(argv[i], ".jpeg"))
            do_something();
    }
}