Поиск гласных в тексте - C (СИ)
Формулировка задачи:
дан текст в несколько строчек. надо найти количество гласных букв. как обычно нашел кучу программ, начал писать по аналогии, но так и не понял, как в файле брать следующий символ.
#include <conio.h>
#include <stdio.h>
const char glasn[]="aeuiyo";
int j,i,kol;
char c;
void main()
{
clrscr();
FILE *f1;
f1=fopen("text1.txt","r+");
kol=0; i=0; j=0;
while (!feof(f1))
{c=fgetc(f1);
for(j=0; j<6; j++)
if (c==glasn[j]) (kol++);
}
fclose(f1);
printf("%d",kol);
getch();
}Решение задачи: «Поиск гласных в тексте»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
int main()
{
FILE *fp;
char ch;
int kol=0;
char mas[] = "aeyuio";
if((fp=fopen("test.txt","r"))==NULL) {
printf("Невозможно открыть файл.\n");
}
while((ch=fgetc(fp)) != EOF) {
for(int i=0; i<6; i++){
if(ch == mas[i]){
kol++;
//std::cout << ch << '\n';
}
}
}
fclose(fp);
std::cout << kol << '\n';
system("pause");
}
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
kol- счётчик гласных;fp- указатель на файл;ch- текущий символ;mas- массив, содержащий гласные буквы.
- Открывается файл с помощью функции
fopenи проверяется на открытие с помощью функцииferror. Если файл не открылся, выводится сообщение об ошибке и программа завершается. - В цикле
whileпроисходит чтение файла посимвольно с помощью функцииfgetc. - Для каждого символа в цикле
forпроверяется, является ли он гласным, с помощью оператора==. Если символ является гласным, увеличивается счётчикkol. - После завершения чтения файла, счётчик выводится на экран с помощью функции
printf. - Файл закрывается с помощью функции
fclose. - Программа завершается с помощью функции
system.