Ich möchte alle Umlaute in einer Datei für TeX in \"a; \"u; ... und so weiter mit einem C-Programm konvertieren.
Ich habe versucht das einzelne Zeichen als int mit switch() zu nutzen. Leider haben die Umlaute mehrere int Werte, so daß ich die Umlaute zwar herauslesen aber keine weitere Unterteilung machen kann. Wie kann ich auf die weiteren Werte zugreifen?
Zum testen habe ich mir eine Textdatei mit einigen Umlaute erstellt und sie mit dem folgenden Programm aufgerufen.
Code: Select all
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
if(argc < 2)
return 2;
char *file1 = argv[1];
int i=0, c;
FILE *fp1;
if((fp1=fopen(file1,"r")) == NULL )
{
printf("zu lesende Datei %s nicht gefunden!\n", file1);
return 11;
}
while((c=fgetc(fp1))!=EOF)
{
printf("%i %c\n",c,c);
switch(c)
{
case 195:
{
//??? Hier moechte ich gern auf den zweiten Wert zugreifen ???
switch (c)
{
case 164: printf("\"a");
break;
case 132: printf("\"A");
break;
// und so weiter
}
}
break;
default:printf("%c",c);
break;
}
}
if (!fclose(fp1))
printf("Datei %s erfolgrein geschlossen!\n",file1);
return 1;
}