Подтвердить что ты не робот

Получение расширения файла в C

Как получить расширение файла (например, .tiff) из имени файла в C?

Спасибо!

4b9b3361

Ответ 1

const char *get_filename_ext(const char *filename) {
    const char *dot = strrchr(filename, '.');
    if(!dot || dot == filename) return "";
    return dot + 1;
}

printf("%s\n", get_filename_ext("test.tiff"));
printf("%s\n", get_filename_ext("test.blah.tiff"));
printf("%s\n", get_filename_ext("test."));
printf("%s\n", get_filename_ext("test"));
printf("%s\n", get_filename_ext("..."));

Ответ 2

Найдите последнюю точку с помощью strrchr, затем выполните 1 char

#include <stdio.h> /* printf */
#include <string.h> /* strrchr */

ext = strrchr(filename, '.');
if (!ext) {
    /* no extension */
} else {
    printf("extension is %s\n", ext + 1);
}

Ответ 3

Вы можете использовать функцию strrchr, которая ищет последнее вхождение символа в строке, чтобы найти конечную точку. Оттуда вы можете прочитать остальную часть строки в качестве расширения.