Поиск имени файла без расширения - 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
, что приводит к выводу строки без последнего символа '.' и его следующих символов, если они есть.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д