Поиск имени файла без расширения - 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);

Объяснение кода листинга программы

  1. В этом коде используется функция strrchr, которая ищет последний символ в строке.
  2. Если символ '.' найден, то в str2 сохраняется указатель на этот символ.
  3. Если символ '.' не найден, то str2 становится равным NULL.
  4. Затем, если str2 не равно NULL, то символ '.' заменяется на символ '\0' в строке str1.
  5. Наконец, выводится строка str1+1, что приводит к выводу строки без последнего символа '.' и его следующих символов, если они есть.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы