В строке, содержащие имя файла, проверить есть ли у него расширение - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задание.В строке,содержащие имя файла,проверить есть ли расширение.если нет добавить .txt.Если есть оставить Есть код нужно переделать в параметры командной строки
#include <string.h>
#include <stdio.h>
 
int main()
{
  char *filename = new char[128],*p;
  printf("Input Name of file:");
  gets(filename);

  p = strstr (filename,".txt");
  
  if (p)
      printf("Name of file: %s\n",filename);
  else
   { 
       p = strchr (filename,'.');
    
     strcat (filename,".txt");
     printf("Name of file: %s\n",filename);
   }
  
  delete [] filename;
  
}

Решение задачи: «В строке, содержащие имя файла, проверить есть ли у него расширение»

textual
Листинг программы
#include <string.h>
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    if(argc != 2) {
        return 1;
    }
    if(strpbrk(argv[1], "(\/:*)")) {
        return 2;
    }
    p = strstr (argv[1],".txt");
  
  if (p)
      printf("Name of file: %s\n",argv[1]);
  else
   { 
       p = strchr (argv[1],'.');
    
     strcat (argv[1],".txt");
     printf("Name of file: %s\n",argv[1]);
   }
  
    return 0;
}

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

  1. Проверка количества аргументов в программе (argc). Если аргументов больше или равно 2, то выполняется блок кода внутри условия.
  2. Используя функцию strpbrk, происходит проверка наличия в имени файла запрещенных символов, таких как (\/:*). Если такие символы есть, то выполняется блок кода внутри условия.
  3. Используя функцию strstr, происходит поиск подстроки .txt в имени файла. Если подстрока найдена, то переменная p получает адрес первого символа подстроки, иначе p остается равным NULL.
  4. Если p не равен NULL, то выводится имя файла с помощью функции printf.
  5. Если p равен NULL, то используя функцию strchr, происходит поиск последнего символа '.' в имени файла. Если такой символ есть, то к имени файла добавляется подстрока .txt с помощью функции strcat. Затем выводится имя файла с помощью функции printf.
  6. В конце программы возвращается 0, что означает успешное выполнение программы.

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


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

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

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