Program przetwarzający plik tekstowy - problem

0

Witam

Mam taki oto problem. Mój program ma odczytywać plit tekstowy, i każdy następny wyraz po wyrazie zawierającym "h" oraz "e" (obojętnie czy wielką czy małą literą), ale bez litery "t", podwajać w pliku wyjściowym (a pozostałe wyrazy kopiować normalnie). Za wyraz traktujemy wszystko co posiada literę, albo symbol "". Czyli "witam" jest wyrazem, "1witam" nie jest wyrazem i nie zostanie skopiowane. Przykład

Plik wejściowy:

That 1Katharina &&&^^& and Petruchio should be married,
And yet we hear not of our son-in-law.
What will be said? what mockery will it be,
To want the bridegroom when the priest attends
To speak the ceremonial rites of marriage!
What says Lucentio to this shame of ours?

Plik wyjściowy

That and Petruchio should be married,
And yet we hear notnot of our son-in-law.
What will be said? what mockery will it be,
To want the bridegroom when thethe priest attends
To speak the ceremonial rites of marriage!
What says Lucentio to this shame ofof ours?

Problem się robi, jak np tekst macierzysty będzie "hear ^not" albo dwie spacje "hear not" to juz nie działa jak należy.

KOD: http://pastebin.com/P97sVguA

Proszę o pomoc

0

son-in-law
to słowo zgodnie z podanymi zasadami nie powinno być skopiowane.

0

pomyliłem się, nie "^" tylko "-"

0

Aleś namieszał.

int rewriteWhitespace(FILE *infile, FILE *outfile)
{
    int c; // zmienna na znak, musi być int! żeby wykryć EOF
    
    while (EOF != (c = fgetc(infile)) {
        if (!isspace(c)) {
            ungetc(c, infile);
            break;
        }
        fputc(c, outfile);
    }
    
    return c != EOF;
}

#define WORD_BUFF_SIZE 4096
#define WORD_SCAN_FMT "%4095s"
char word[WORD_BUFF_SIZE];

for (;;) {
    if (!rewriteWhitespace(infile, outfile)) break;
    if (!fscanf(infile, WORD_SCAN_FMT, word)) break;
    fputs(word, outfile);
    if (testWord(word)) fputs(word, outfile);
}

Funkcja testWord ma sprawdzić, czy podany łańcuch jest słowem które należy zdublować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1