Перед каждым символом необходимо поставить порядковый номер в тексте. (включая пробелы) - C (СИ)

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

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

Есть 2 текстовых файла: в один файл пишешь абсолютно любой текст, запускаешь программу, в консольке может ничего не говориться, она просто должна пронумеровать каждый символ исходного текста и запихнуть во второй файл. Я пока что разобрался только с тем, как считать текст и запихнуть его в другой файл, но не знаю как пронумеровать эти символы.
#include <stdio.h>
#include <stdlib.h>
 
int main(...)
{
 
    int n = 1;
    FILE *fi, *fo;
    fi = fopen("input.txt", "r");
    fo = fopen("output.txt", "w");
 
    fprintf(fo, "%d ", n);
 
    while () // а может и не while
    {
        //присвоение каждому символу порядковый номер
    }
 
    fclose(fi);
    fclose(fo);
 
    system("PAUSE");
    return 0;
}
Скорее всего, так должна выглядеть программа. Но, увы, дальше этого никак не могу уйти.

Решение задачи: «Перед каждым символом необходимо поставить порядковый номер в тексте. (включая пробелы)»

textual
Листинг программы
    for (i = 0;;) {
        ch = fgetc(fi);
        if (ch != EOF) {
            if (ch > 13)
                fprintf(fo, "(%d)%c", ++i, ch);
            else
                fprintf(fo, "%c", ch);
            printf("%c\t%d\n", ch, ch);
        } else
            break;
    }

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

  1. Объявлены переменные: — i (указатель на целочисленную переменную, используемую в цикле) — ch (указатель на символ, который считывается из файла fi) — fo (указатель на файл, в который записываются результаты)
  2. Цикл while считывает символы из файла fi до достижения конца файла (EOF).
  3. Если считанный символ не равен EOF, то выполняется проверка: — Если символ больше 13 (предполагается, что это ASCII символ), то в файл fo записывается символ, его порядковый номер и сам символ. — Если символ меньше или равен 13 (предполагается, что это пробел или специальный символ), то в файл fo записывается только символ.
  4. В консоль выводится символ, его порядковый номер и сам символ.
  5. Если символ равен EOF, то цикл прерывается.
  6. В конце кода нет инструкций, которые могут повлиять на работу программы.

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


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

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

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