Вывести текст без гласных букв - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д