Файлы в Си
Дан файл с текстом. Удалить все слова начинающиеся с согласных латинских букв. Помогите пожалуйста написать код на Си

  • 1. открываем файл на чтение/запись
    2. читаем весь в строку
    3. разбиваем на массив из слов
    4. берем ту таблицу символов, в которой будет работать наша программа, и узнаем код согласных латинских (ну или проверяем, не равен ли соответствующий символ согласному латинскому)
    5. записываем нужные слова из массива в файл
  • > 2. читаем весь в строку
    > 3. разбиваем на массив из слов
    Можно просто последовательно обрабатывать каждый символ входного файла.

    Без контроля ошибок ввода/вывода и открытия файлов, входной файл in.txt, результат в out.txt:

    #include
    #include
    #include

    int main() {
    enum { out, in, skip } state = out;
    char *s = "qwrtpsdfghjklzxcvbnm";
    int c;
    FILE *ifd, *ofd;

    ifd = fopen("in.txt", "r");
    ofd = fopen("out.txt", "w");

    while ( (c = getc(ifd)) != EOF ) {
    switch (state) {
    case out:
    if ( isalpha(c) ) {
    if ( strchr(s, c) ) {
    state = skip;
    } else {
    putc(c, ofd);
    state = in;
    }
    } else {
    putc(c, ofd);
    }
    break;
    case in:
    putc(c, ofd);
    if ( !isalpha(c) ) state = out;
    break;
    case skip:
    if ( !isalpha(c) ) {
    putc(c, ofd);
    state = out;
    }
    break;
    }
    }
    fclose(ifd);
    fclose(ofd);

    return 0;
    }