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