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

Rea*_*ver 1 c string argv

我正在使用 C 语言编写一个将参数作为输入的程序。是否可以检查您的 argv 是否包含特定的文件扩展名?就像检查 argv 中是否有任何 char* 以 .jpeg 或类似的结尾?(任何示例代码将不胜感激:))

Ola*_*che 5

您可以查找最后一个.withstrrchr然后比较扩展名strcmp

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

或者,从字符串的末尾取出扩展的长度并比较

const char *ext = ".jpeg";
size_t xlen = strlen(ext);
size_t slen = strlen(argv[1]);
int found = strcmp(argv[1] + slen - xlen, ext) == 0;
Run Code Online (Sandbox Code Playgroud)

这也适用于.tar.gz.