Umlaute ermittlen
-
Hallo ich habe folgendes Problem und zwar erkennt meine if Bedingung die Umlaute nicht die ich eingeben habe aber warum?
#include <stdio.h> #include <iostream> using namespace std; int main(){ int i; string eingabe; string ausgabe; cout << "Geben Sie einen Satz ein: "; getline(cin, eingabe); for(i=0; i<eingabe.size(); i++){ if(eingabe[i] == 'ä'){ ausgabe += "ae"; } else if(eingabe[i] == 'ö'){ ausgabe += "oe"; } else if(eingabe[i] == 'ü'){ ausgabe += "ue"; } else if(eingabe[i] == 'ß'){ ausgabe += "ss"; } else { ausgabe += eingabe[i]; } } cout << ausgabe; }
-
Leute, die
<stdio.h>benutzten, müssen eigentlich zwingend Windoofs benutzen.
Und solche Leute schauen nicht in die FAQ.Daher der Link: http://www.c-plusplus.net/forum/39326 Hier wird alles erklärt, bis auf das: Ob du ein Umlaut ausgibst oder einliest spielt keine Rolle für das Encoding.
-
Es heißt <cstdio> in C++. Und wenn du es richtig machen willst, dann verwendest du diese nicht, sondern anstelle des C-String inkludierst du <string> und verwendest std::string!
-
Vielleicht liegt es ja daran, dass deine Konsole die falsche Codepage benutzt. Gibst du 'ä' aus, kommt nämlich auch kein 'ä' raus, sondern z.B. ein durchgestrichenes o. Die Codepage kannst du aber irgendwie mit Windows-Bordmitteln setzen (wenn du's rausgefunden hast, gib mir am besten gleich Bescheid, wie
).