Поменять в названии расширение файла - C (СИ)

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

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

Смысл программы - поменять в названии расширение файла на .TXT . Но когда я создаю динамический массив с вводом то все работает а когда обычный то выдает ошибку. Непонятно почему такой вариант кода работает
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
void main()
{
  char *filename = new char[128],*p;
  cout << "Enter name of file: ";
  gets(filename);
  cout << "\nName of file: " << filename << "\n";
  strupr(filename);
  p = strstr (filename,".TXT");
  if (p)
     cout << "Name has extension" << "\n";
  else
   { p = strchr (filename,'.');
     if (p) 
        *p=NULL; //Удалить любое другое расширение.
     strcat (filename,".TXT");
   }
  cout << "Name of file: " << filename << "\n";
  delete [] filename;
}
а такой нет
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
void main()
{
 
  char *filename;
  filename="text.doc";
  char *p;
  cout << "\nName of file: " << filename << "\n";
  p = strchr (filename,'.');
     if (p) 
        *p=NULL; //Удалить любое другое расширение.
     strcat (filename,".TXT");
  
  cout << "Name of file: " << filename << "\n";
 
}

Решение задачи: «Поменять в названии расширение файла»

textual
Листинг программы
char filename[]="text.doc";

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


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

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

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