Удалить из файла фразы, содержащие слова из из гласных букв - C (СИ)
Формулировка задачи:
Дан файл, содержащий некоторый текст. Удалить из него фразы, содержащие слова, состоящие только из гласных букв.
Исходный файл к задаче не содержит русских букв, каждая фраза расположена на отдельной строке, словами считаются группы символов между группами пробелов.
пример фразы:
qwe eee.
aloha.
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- int main(int argc, char *argv[])
- {
- FILE *f1,*f2;
- char str[300];
- char glas[34]="AaEeYyUuIiOo";
- char *p;
- int i=0,k=0,l=0,q=0,d=0,L=0;
- f1=fopen("file1.txt","r");
- if(f1==NULL)
- {
- puts("ERROR");
- system("pause");
- return 1;
- }
- f2=fopen("file2.txt","w");
- if(f2==NULL)
- {
- puts("ERROR");
- system("pause");
- return 1;
- }
- while((str[i]=fgetc(f1))!=EOF)
- {
- if(str[i]=='.' )
- {
- str[i+1]='\0';
- p=strtok(str," ");
- while(p=strtok(NULL," "))
- {
- for(d=0;d<strlen(p);d++)
- for(k=0;k<12;k++)
- if (p[d]==glas[k])
- l++;
- if(l==strlen(p))
- q=1;
- if(q!=1) fputs(str,f2);;
- l=0;
- }
- for(k = 0; k < 300; k++)
- str[k] = '\0';
- }i++;
- }
- fclose(f1);
- fclose(f2);
- system("PAUSE");
- return 0;
- }
Решение задачи: «Удалить из файла фразы, содержащие слова из из гласных букв»
textual
Листинг программы
- p=strtok(str," ");
- while (p)
- {
- // do ...
- p=strtok(NULL," ")
- }
Объяснение кода листинга программы
- Вводится строка, представленная в виде массива символов, который хранится в переменной типа char под названием
str
. - Используя функцию strtok, строка разбивается на отдельные слова (токены), которые сохраняются в переменной типа char под названием
p
. Каждое слово отделяется от остальных словами, в качестве разделителя используется пробел. - Затем используется цикл while, который продолжается до тех пор, пока не будет найден следующий токен (слово).
- Внутри цикла проверяется, содержит ли текущее слово гласные буквы. Если да, то оно удаляется из исходной строки.
- После обработки каждого слова цикл продолжается до тех пор, пока не будет найден следующий токен.
- После обработки всех токенов исходная строка
str
будет содержать только те слова, которые не содержат гласные буквы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д