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