#include #include #include #define vortlongo 1000 #define npronomoj 2 #define novortoj 24 char pronomoj[npronomoj][2][5]={{"li","ri"},{"^si","ri"}}; char ovortoj[novortoj][2][10]={ {"av","avi^c"}, {"edz","edzi^c"}, {"av","avi^c"}, {"edz","edzi^c"}, {"fian^c","fian^ci^c"}, {"filin","gefil"}, {"fil","gefil"}, {"frat","frati^c"}, {"kuzin","kuz"}, {"nepin","nep"}, {"nevin","nev"}, {"onklin","onkl"}, {"patr","patri^c"}, {"vidvin","vidv"}, {"bubin","bub"}, {"knabin","knab"}, {"vir","viri^c"}, {"fra^ulin","fra^ul"}, {"graf","grafi^c"}, {"princin","princ"}, {"re^g","re^gi^c"}, {"sinjorin","sinjor"}, {"amikin","amik"}, {"mona^h","mona^hi^c"}}; // etc... // - avo edzo fian^co filo frato kuzo nepo nevo onklo patro vidvo // - bubo knabo viro // - fra^ulo grafo princo re^go sinjoro // - amiko int traduku(char *vorto); int main(int argc, char *argv[]) { FILE *F; if (argc==1) F=stdin; if (argc==2) if (strcmp(argv[1],"h")==0){ printf("riismigu -- julio 1996 -- Michiel Meeuwissen \n" "uzu: riismigu teksto.tks > teksto.ri \n" "au ekz.: type teksto.tks | riismigu > teksto.ri\n"); return 1; } if (argc==2) if ( (F=fopen(argv[1],"rt")) == NULL) { printf("%s nemalfermebla",argv[1]); return 1;} char c; char vorto[vortlongo]; unsigned lon; unsigned n=0; vorto[0]='\0'; while(fscanf(F, "%c",&c)!=EOF) { if (c==' ' || c==',' || c=='.' || c==';' || c=='\n' || c=='\0' || c=='}' || c=='{' || c=='(' || c==')' || c=='[' || c==']' || c=='`' || c=='\'' || c=='"' ) { // printf("{%s}",vorto); if (strlen(vorto)>1) n+=traduku(vorto); printf("%s%c",vorto,c); vorto[0]='\0'; } else { lon=strlen(vorto); vorto[lon]=c; vorto[lon+1]='\0';} } printf("\n%% %s: %u aliigoj\n",argv[0],n); fclose(F); return 0; } char *majusklu(char *vorto) { vorto[0]=toupper(vorto[0]); if(vorto[0]=='^') vorto[1]=toupper(vorto[1]); return vorto; } char *vortmajusklu(char *vorto) { int i=0; while(vorto[i]!='\0') {vorto[i]=toupper(vorto[i]); i++;} return vorto; } int komparu(char *vorto, char *malnova, char *nova) { char ilomn[vortlongo]; // printf("{%s,%s,%s}",vorto,malnova,nova); strcpy(ilomn,malnova); if (strcmp(ilomn,vorto)==0) { strcpy(vorto,nova); return 1;} majusklu(ilomn); if (strcmp(ilomn,vorto)==0) { majusklu(strcpy(vorto,nova)); return 1;} vortmajusklu(ilomn); if (strcmp(ilomn,vorto)==0) { vortmajusklu(strcpy(vorto,nova)); return 1;} return 0; } int traduku(char *vorto) { // printf("{%s,%s,%s}",vorto,malnova,nova); int i; char nova[vortlongo]; char malnova[vortlongo]; for(i=0; i