Поиск имени файла без расширения - C (СИ)
Формулировка задачи:
Нужно из строки найти имя файла без расширения.Пример C:\users\downloads\abv.jpg должно вывести abv.У меня в программе выводит abv.jpg.Подскажите пожалуйста как сделать правильно.
Листинг программы
- #include <stdio.h>
- #include <string.h>
- int main(int argc, char *argv[])
- {
- char str[51];
- gets(str);
- char *str1 = strrchr(str,'\\');
- puts(str1+1);
- return 0;
- }
Решение задачи: «Поиск имени файла без расширения»
textual
Листинг программы
- char *str2 = strrchr(str1, '.');
- if (str2!=NULL) *str2='\0';
- puts(str1+1);
Объяснение кода листинга программы
- В этом коде используется функция
strrchr
, которая ищет последний символ в строке. - Если символ '.' найден, то в
str2
сохраняется указатель на этот символ. - Если символ '.' не найден, то
str2
становится равнымNULL
. - Затем, если
str2
не равноNULL
, то символ '.' заменяется на символ '\0' в строкеstr1
. - Наконец, выводится строка
str1+1
, что приводит к выводу строки без последнего символа '.' и его следующих символов, если они есть.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д