Необходимо написать программу на языке C++ чересстрочного слияния двух текстовых файлов с удалением в каждой строке слов в которых встречаются латинские буквы...
т.е. к примеру 'форуRм' значит нужно удалить...
вот код в ней работает слияние и другое задание..
помогите пожалуйста реализовать эту часть задания..
| Код | #include <string.h> #include <stdio.h> #include <ctype.h> #include <iostream.h> #include <conio.h> #define LEN 1024
class myClass { public: void writeStr(char *str, FILE *in, FILE *out); void delSep(char *str); void newFunc(); };
void myClass::delSep(char *str) { char *beg, *end; char *sep=".,:;?!(){}[]-"; while(end=strpbrk(str, sep)) { beg=end; while(*(end+1) && !isalnum(*(end+1))) end++; while(!isalnum(*beg) && beg>=str) beg--; while(!isspace(*beg) && beg>=str) beg--; while(!isalnum(*beg) && beg>=str) beg--; if(beg>=str) *(++beg)=' '; strcpy(beg+1, end+1); } }
void myClass::writeStr(char *str, FILE *in, FILE *out) { if(fgets(str, LEN, in)) { delSep(str); fputs(str, out); if(str[strlen(str)-1]!='\n') fputc('\n', out); } }
void myClass::newFunc() { FILE *f1, *f2, *f3; char buf[LEN]=""; char c1[20],c2[20],c3[20]; clrscr(); cout<<endl<<"Vvedite nazvanie file_1:"<<endl; cin>>c1; cout<<endl; if (!(f1=fopen (c1, "rt"))){ cout<<"Error!!! File_1 ne otkrit!!!"<<endl; return; } clrscr(); cout<<endl<<"Vvedite nazvanie file_2:"<<endl; cin>>c2; cout<<endl; if (!(f2=fopen (c2, "rt"))){ cout<<"Error!! File_2 ne otkrit!!!"<<endl; return; } clrscr(); cout<<endl<<"Vvedite nazvanie file_3:"<<endl; cin>>c3; cout<<endl; if (!(f3=fopen (c3, "wt"))) { cout<<"Error!!! File_3 ne otkrit!!!"<<endl; return; } while(!feof(f1) || !feof(f2)) { writeStr(buf, f1, f3); writeStr(buf, f2, f3); } cout<<endl<<"Gotovo!!! Rezul'tat v file "<<c3<<endl; fcloseall(); }
int main() { myClass ob; ob.newFunc() ; return 0 ; }
|
|