В строке, содержащие имя файла, проверить есть ли у него расширение - 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; }
Объяснение кода листинга программы
- Проверка количества аргументов в программе (argc). Если аргументов больше или равно 2, то выполняется блок кода внутри условия.
- Используя функцию strpbrk, происходит проверка наличия в имени файла запрещенных символов, таких как (\/:*). Если такие символы есть, то выполняется блок кода внутри условия.
- Используя функцию strstr, происходит поиск подстроки
.txt
в имени файла. Если подстрока найдена, то переменная p получает адрес первого символа подстроки, иначе p остается равным NULL. - Если p не равен NULL, то выводится имя файла с помощью функции printf.
- Если p равен NULL, то используя функцию strchr, происходит поиск последнего символа '.' в имени файла. Если такой символ есть, то к имени файла добавляется подстрока
.txt
с помощью функции strcat. Затем выводится имя файла с помощью функции printf. - В конце программы возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д