/media/sda-magnetic/david/Dok-15-2023-11-27/fernuni-hagen/cs-i-ii/old-cs-2-03/src-2020-06-28/ctohtml.c


#include <stdio.h>



int main(int argc, char *argv[]) {
    FILE *srcfp;
    FILE *desfp;
    int ch;
    int ch2;
    char str[16];
    int count = 0;
    
    
    if((srcfp = fopen(argv[1], "r")) == NULL) {
        perror("Can't open Source File\n");
        exit(1);
    }
    if((desfp = fopen(argv[2], "w")) == NULL) {
        perror("Can't open Destination File\n");
        exit(1);
    }
    
    while(!feof(srcfp)) {
        ch = fgetc(srcfp);
        if(((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || ((ch >= '0') && (ch <= '9')))
            fputc(ch, desfp);   
        else if(ch == 195) {
            ch2 = fgetc(srcfp);
            if(ch2 == 132)
               fputs("&Auml;", desfp);
            else if(ch2 == 156)
                fputs("&Ouml;", desfp);
            else if(ch2 == 150)
                fputs("&Uuml;", desfp);
            else if(ch2 == 164)
                fputs("&auml;", desfp);
            else if(ch2 == 188)
                fputs("&uuml;", desfp);
            else if(ch2 == 182)
                fputs("&ouml;", desfp);
            else if(ch2 == 159)
                fputs("&szlig;", desfp);
            else
                ungetc(ch, srcfp);
        }
        
        else if(ch == '\n')
            fputs("<br>", desfp);
        else if(ch == ' ')
            fputs("&nbsp;", desfp);
        else {
            sprintf(str, "&#%i;", ch);
            fputs(str, desfp);
        }
        if((count > 128) && (ch == '\n')) {
            count = 0;
            fprintf(desfp, "\n");
        }
        count ++;
    }
    fclose(srcfp);
    fclose(desfp);
return 0;
}