Переписать исходный текстовый файл в результирующий переворачивая все слова задом наперед - C (СИ)
Формулировка задачи:
Осталась последняя лабораторная, но у меня никак не получается написать программу...
Задача:
Файл содержит некоторый набор символов. Назовем словом произвольную последовательность латинских букв, разделителями являются все остальные символы. Написать программу, которая переписывает исходный текстовый файл в результирующий переворачивая все слова задом наперед. Помогите пожалуйста очень надо....Решение задачи: «Переписать исходный текстовый файл в результирующий переворачивая все слова задом наперед»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> #define INPUT_FILE_NAME "input.txt" #define OUTPUT_FILE_NAME "output.txt" #define MAX_WORD_LENGTH (256) int main(void) { FILE * fInput, * fOutput; char wordBuf[MAX_WORD_LENGTH]; int ch, bufPos; if ( ! ( fInput = fopen(INPUT_FILE_NAME, "r") ) ) { fprintf(stderr, "Can't open file %s for input!\n", INPUT_FILE_NAME); return 1; } if ( ! ( fOutput = fopen(OUTPUT_FILE_NAME, "w") ) ) { fprintf(stderr, "Can't open file %s for output!\n", OUTPUT_FILE_NAME); if ( fclose(fInput) ) fprintf(stderr, "Can't properly close input file!\n"); return 1; } bufPos = 0; while ( ( ch = fgetc(fInput) ) != EOF ) { if ( isalpha(ch) ) { if ( bufPos >= MAX_WORD_LENGTH ) { fprintf(stderr, "Word is too long. Try to increase MAX_WORD_LENGTH parameter.\n"); if ( fclose(fInput) ) fprintf(stderr, "Can't properly close input file!\n"); if ( fclose(fOutput) ) fprintf(stderr, "Can't properly close output file!\n"); return 1; } wordBuf[bufPos++] = ch; } else { while ( bufPos > 0 ) { if ( fputc(wordBuf[--bufPos], fOutput) == EOF ) { fprintf(stderr, "Can't write to output file!\n"); if ( fclose(fInput) ) fprintf(stderr, "Can't properly close input file!\n"); if ( fclose(fOutput) ) fprintf(stderr, "Can't properly close output file!\n"); return 1; } } if ( fputc(ch, fOutput) == EOF ) { fprintf(stderr, "Can't write to output file!\n"); if ( fclose(fInput) ) fprintf(stderr, "Can't properly close input file!\n"); if ( fclose(fOutput) ) fprintf(stderr, "Can't properly close output file!\n"); return 1; } } } while ( bufPos > 0 ) { if ( fputc(wordBuf[--bufPos], fOutput) == EOF ) { fprintf(stderr, "Can't write to output file!\n"); if ( fclose(fInput) ) fprintf(stderr, "Can't properly close input file!\n"); if ( fclose(fOutput) ) fprintf(stderr, "Can't properly close output file!\n"); return 1; } } if ( ferror(fInput) || fclose(fInput) || fclose(fOutput) ) { fprintf(stderr, "IO Error!\n"); return 1; } fprintf(stderr, "Done.\n"); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д