Другие языки программирования и технологии

программирование в си

Удалить все слова начинающиеся на согласные. Переписать во второй файл. Сохраняя переходы на новые строки и пробелы на Си. Все стопорится и зависает
[C]int alg (FILE *fp, FILE *fpout)
{
int i;
char c;
char a[12]={'A','a','E','e','I','i','O','o','Y','y','U','u'};

while (!feof(fp))
if (!feof(fp))
{
c=fgetc(fp);
while (c!=' '|| c!='\n')
{
for (i=0; i<12; i++)
{
if (c==a)
{
fprintf(fpout,"%c",c);
c=fgetc(fp);
}
}
c=fgetc(fp);
}
if (c==' ' || c!='\n')
fprintf(fpout,"%c",c);
}
return 0;
} [C]
ru-70
ru-70
313
#include <string.h>
#include <stdio.h>
#include <ctype.h>

int main() {
    FILE *fin, *fout;
    enum { outw, inw, skipw } st = outw;
    int c;

    fin = fopen("in.txt", "r");
    fout = fopen("out.txt", "w");

    while ( (c = fgetc(fin)) != EOF ) {
        switch (st) {
        case outw:
            if ( !isspace(c) ) {
                if ( strchr("aeioyu", tolower(c)) ) {
                    st = skipw;
                } else {
                    fputc(c, fout);
                    st = inw;
                }
            } else {
                fputc(c, fout);
            }
            break;
        case inw:
            fputc(c, fout);
            if ( isspace(c) ) st = outw;
            break;
        case skipw:
            if ( isspace(c) ) {
                fputc(c, fout);
                st = outw;
            }
            break;
        }
    }

    fclose(fin);
    fclose(fout);

    return 0;
}
Владислав Марисов
Владислав Марисов
50 400
Лучший ответ
ни че не понял если честно
Лучше давать ссылки на ресурс, предоставляющий возможность пастинга кода в сети.