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