Online Compiler C

#include <stdio.h> #include <string.h> int main(void) { FILE *inputFile = fopen("input.txt", "r"); // Открываем файл для чтения FILE *outputFile = fopen("output.txt", "w"); // Открываем файл для записи char str[1001]; // Объявляем массив для хранения строки (с запасом на символ новой строки и нулевой символ) fgets(str, sizeof(str), inputFile); // Читаем строку из файла // Удаляем символ новой строки, если он есть в конце строки, прочитанной fgets if (str[strlen(str) - 1] == '\n') { str[strlen(str) - 1] = '\0'; } unsigned long len = strlen(str); // Получаем длину строки char lastChar = str[len - 1]; // Получаем последний символ строки // Проходим по всей строке for (int i = 0; i < len; i++) { // Если текущий символ совпадает с последним символом if (str[i] == lastChar) { // Записываем номер символа (индекс + 1) в выходной файл, добавляя пробел fprintf(outputFile, "%d ", i + 1); } } fclose(inputFile); // Закрываем входной файл fclose(outputFile); // Закрываем выходной файл return 0; }
1) Этот код читает строку из файла `input.txt`, находит все позиции (начиная с 1), на которых встречается последний символ этой строки, и записывает эти позиции через пробел в файл `output.txt`.

2) Подсказки:
*   Обрати внимание, что программа предполагает, что файл `input.txt` существует и содержит хотя бы один символ (кроме символа новой строки). Подумай, что произойдет, если файл пуст или его не удалось открыть.
*   Учти, что нумерация позиций для вывода начинается с единицы, хотя индексация в массиве `str` начинается с нуля.