Подсчёт количества чисел, удаление каждого второго слова и слов из латинских букв - C (СИ)

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

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

Я новичок в програмировании, сказать больше Чайник, но всё-же очень хочу развивать в этом направлении. Вот недавно наткулся на задание в интернете: Написать программу, которая копирует содержимое входного файла в выходной файл; подсчитывает количество чисел в тексте (не цифр, а именно чисел); Удаляет все слова, состоящие только из латинских букв; удаляет каждое второе слово. С одной стороны не очень сложно, но всё-таки я запутался. Изрядно попотев, я оказался способным лишь на это:
C
Помогите пожалуста победить в этой борьбе с программой=) Заранее спасибо

Решение задачи: «Подсчёт количества чисел, удаление каждого второго слова и слов из латинских букв»

textual
Листинг программы
  #include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
 
 
void alpha(void)
{
 
FILE *file,*file1;
file = fopen( "input.txt", "r" );
file1 = fopen( "output.txt", "w" );
char ch;
int i=0,t=0;
ch=fgetc(file);
while (ch != EOF)
{
 i=0,t=0;
 char buf [1024] ;
while(ch!=' '&& ch!='\n' && ch !='\t')
{
if(ch == EOF) break;
buf[i]=ch;  i++;
ch=fgetc(file);
}
t=i;
 int flag=0;
for(i=0;i<=t;i++){
if((isalpha(buf[i])!=0) && (isdigit(buf[i])==0))
flag++;           }
if(flag==t)
for(i=0;i<t;i++)
fputc(buf[i],file1);
fputc(' ',file1);
ch=fgetc(file);}
fclose(file);
fclose(file1);
 
}
 
 void second(void)
 {FILE *file,*file1;
 
 
 
file = fopen( "input.txt", "r" );
file1 = fopen( "output.txt", "w" );
 
char ch;
 
int i=0;
while (ch != EOF)
{
 
ch = fgetc(file);
if (ch==' ') i++;
 
if(i%2==0)
fputc(ch,file1);
 }
 }
 
 
 
 
 
 
void main( void )
{
alpha();
//second();
 
}

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

В этом коде представлены две функции: alpha и second. Функция alpha считывает содержимое файла (предполагается, что в этом файле находятся числа, разделённые пробелами), и записывает в другой файл только те слова, которые состоят только из букв (не из цифр). А функция second считывает то же самое, но записывает в файл только каждое второе слово. Вот список элементов кода, которые можно выделить:

  1. Объявление функций alpha и second.
  2. Открытие файлов input.txt и output.txt для чтения и записи соответственно.
  3. Чтение символа из файла в переменную ch.
  4. Прохождение по всем символам в файле до конца файла.
  5. В функции alpha: считывание числового значения в массив buf (предполагается, что это число, состоящее только из букв).
  6. Проверка каждого символа в массиве buf: если символ является буквой и не является цифрой, то увеличиваем счётчик flag.
  7. Если все символы в массиве buf являются буквами, то записываем каждый символ в файл output.txt, предварительно добавив пробел.
  8. В функции second: если текущий символ является пробелом, то увеличиваем счётчик i.
  9. Если i является чётным числом, то записываем текущий символ в файл output.txt.
  10. Закрытие файлов после окончания работы.
  11. Объявление функции main, которая вызывает функцию alpha и, опционально, функцию second.

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


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

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

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