Изменить/дополнить готовый код. Каждый 5-ый символ заменить на символ "№" - C (СИ)

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

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
   FILE *fileIn, *fileOut;                           /* Объявл.файлы */
   int iCharCount = 0;                               /* Счетчик=0    */
   fileIn = fopen("Input.txt", "rt");                /* Открытие Вх. */
   if (fileIn == NULL)  {                            /* Удачно?      */
      fprintf(stderr, "Cannot open input file.\n");  /* нет- Ошибка  */
      return 1;                                      /*      Возврат */
   }
   fileOut = fopen("Output.txt", "wt");              /* Открытие Вых.*/
   if (fileOut == NULL) {                            /* Удачно?      */
      fclose(fileIn);                                /* нет- Закр.Вх.*/
      fprintf(stderr, "Cannot open output file.\n"); /*      Ошибка  */
      return 1;                                      /*      Возврат */
   }
   while (!feof(fileIn)) {                           /* Цикл чтения  */
      char cChar = fgetc(fileIn);                    /* Чтение символ*/
      if(strchr("0123456789",cChar)) iCharCount++; /* Подсчет      */
      //if(strchr("0123456789",cChar)) cChar = '#';         /* Замена       */
      fputc(cChar, fileOut);                         /* Вывод        */
   }
   fclose(fileIn);                                   /* Закрытие Вх. */
   fclose(fileOut);                                  /* Закрытие Вых.*/
                                                     /* Вывод рез.   */
   fprintf(stdout, "Chislo simvolov \'0-9\' ravno %d\n",iCharCount);
//   getch();
  system("PAUSE");  
  return 0;
}

Решение задачи: «Изменить/дополнить готовый код. Каждый 5-ый символ заменить на символ "№"»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    FILE* fileIn, *fileOut;                            /* Объявл.файлы */
    int iCharCount = 0;                                /* Счетчик=0    */
    fileIn = fopen("Input.txt", "rt");                 /* Открытие Вх. */
    if (fileIn == NULL)                                /* Удачно?      */
    {
        fprintf(stderr, "Cannot open input file.\n");  /* нет- Ошибка  */
        return 1;                                      /*      Возврат */
    }
    fileOut = fopen("Output.txt", "wt");               /* Открытие Вых.*/
    if (fileOut == NULL)                               /* Удачно?      */
    {
        fclose(fileIn);                                /* нет- Закр.Вх.*/
        fprintf(stderr, "Cannot open output file.\n"); /*      Ошибка  */
        return 1;                                      /*      Возврат */
    }
    while (!feof(fileIn))                              /* Цикл чтения  */
    {
        char cChar = fgetc(fileIn);                    /* Чтение символ*/
        
        if (++iCharCount == 5)
        {
            iCharCount = 0;
            cChar = '№';
        }
 
        fputc(cChar, fileOut);                         /* Вывод        */
    }
    fclose(fileIn);                                    /* Закрытие Вх. */
    fclose(fileOut);                                   /* Закрытие Вых.*/
                                                       /* Вывод рез.   */
 
    system("PAUSE");
    
    return 0;
}

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

  1. Входной файл считывается до конца.
  2. Для каждого пятого символа входного файла заменяется на символ .
  3. Результат выводится в выходной файл.
  4. Входной и выходной файлы закрываются.
  5. Выполняется команда паузы.
  6. Возвращается код завершения программы.

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


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

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

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