Вывести текст без гласных букв - C (СИ)
Формулировка задачи:
Решение задачи: «Вывести текст без гласных букв»
#include <stdio.h> #include <string.h> #include <stdlib.h> #define LENGTH_STR 100 // максимальная длина строки для имени файла #define VOWELS_COUNT 12 // количество гласных - 6 в нижнем и 6 в верхнем регистрах int main() { char fName[ LENGTH_STR ]; // имя файла printf( "Введите имя файла: " ); fgets( fName, LENGTH_STR, stdin ); // считываем имя файла fName[ strcspn( fName, "\n" ) ] = '\0'; // убираем символ новой строки, если он был введён FILE* fin = fopen( fName, "r" ); // открываем файл для чтения if ( !fin ) { // если не удалось открыть perror( "Не смогли открыть файл " ); // сообщаем об этом // выходим из программы и возвращаем в ОС return EXIT_FAILURE; // код о НЕуспешном завершении программы } // массив гласных букв // каждую букву считанную из файла будем сравнивать с буквами данного массива const char vowels[ VOWELS_COUNT ] = "AEIOUYaeiouy"; char ch; // для очередного считываемого символа // пока не достигли конца файла считываем очередной символ из файла while ( ( ch = fgetc( fin ) ) ) { // в переменную ch int i; int flag = 1; // полагаем, что очередная буква НЕгласная // проходим в цикле все элементы массива гласных for ( i = 0; i < VOWELS_COUNT; ++i ) // если очередной символ из массива гласных совпадает if ( vowels[ i ] == ch ) { // со считанным только что из символом из файла flag = 0; // запоминаем это break; // и прерываем цикл по массиву гласных } if ( flag ) // если очередной символ оказался таки НЕгласной putchar( ch ); // выводим его } fclose( fin ); // закрываем файл return EXIT_SUCCESS; }
Объяснение кода листинга программы
В этом коде считывается имя файла с помощью функции fgets()
. Это имя используется для открытия файла с помощью функции fopen()
. Если файл не может быть открыт, выводится сообщение об ошибке и программа завершается с кодом ошибки EXIT_FAILURE
.
Затем вводится массив гласных букв vowels[]
, который используется для проверки каждого символа, считанного из файла.
В цикле while
считываются символы из файла с помощью функции fgetc()
. Для каждого символа проверяется, является ли он гласной буквой, сравнивая его с каждым элементом массива vowels[]
. Если символ является гласной, то он не выводится. Если символ не является гласной, он выводится с помощью функции putchar()
.
После окончания чтения файла, файл закрывается с помощью функции fclose()
, и программа завершается с кодом успеха EXIT_SUCCESS
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д