Получение расширения файла в C
Как получить расширение файла (например, .tiff
) из имени файла в C?
Спасибо!
Ответы
Ответ 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
, которая ищет последнее вхождение символа в строке, чтобы найти конечную точку. Оттуда вы можете прочитать остальную часть строки в качестве расширения.