Flanders86 Geschrieben 4. Februar 2008 Geschrieben 4. Februar 2008 An alle C++ - bro´s, Kennt jemand ne Funktion in C++, wo ich die Möglichkeit habe, Umlaute etc. bei der Eingabe in einem String zu wandeln? um jeden tipp wäre ich dankbar :e@sy mfg Flanders Zitieren
Klotzkopp Geschrieben 4. Februar 2008 Geschrieben 4. Februar 2008 Ich verstehe das Problem nicht. In was sollen diese Sonderzeichen denn gewandelt werden? Gib doch mal ein Beispiel. Was wird eingegeben, und was soll hinterher im String stehen? Zitieren
Flanders86 Geschrieben 4. Februar 2008 Autor Geschrieben 4. Februar 2008 Hallo Klotzkopp, ok kein Problem, ich versuch mal mein Problem zu schildern. Bsp: mein Programm soll anhand dem Vornamen die passende Anrede generieren. mein Problem ist wen ich Jürgen in den String speicher und ausgebe wird ja mein ü nicht korrekt dargestellt, dazu brauch ne Funktion die eben diese Umlaute und Sonderzeichen richtig umsetzt, gibts da eigentlich ne möglichkeit sowas zu programmieren? mfg Flanders Zitieren
Klotzkopp Geschrieben 4. Februar 2008 Geschrieben 4. Februar 2008 mein Problem ist wen ich Jürgen in den String speicher und ausgebe wird ja mein ü nicht korrekt dargestelltSollte es aber. Wenn es bei dir nicht der Fall ist, liegt das wohl daran, dass du mit zwei unterschiedlichen Codierungen hantierst, d.h. die Daten, die du in den String packst, sind anders codiert, als es die Ausgabe erwartet. Woher kommen die Daten denn, und wie gibst du sie aus? Zitieren
Flanders86 Geschrieben 4. Februar 2008 Autor Geschrieben 4. Februar 2008 ganz normal momentan über Tastatureingabe, später soll das Programm zeilenweise aus einer txt Datei die Namen lesen, Zitieren
Flanders86 Geschrieben 4. Februar 2008 Autor Geschrieben 4. Februar 2008 was ich dazu sagen muss, dass ich nach dem auslesen des Strings, gleich den namen in einer if Abfrage verwende, die if abfrage erkennt sicherlich dann die Umlaute nicht Zitieren
Klotzkopp Geschrieben 4. Februar 2008 Geschrieben 4. Februar 2008 ganz normal momentan über Tastatureingabe, später soll das Programm zeilenweise aus einer txt Datei die Namen lesen,Ein Problem bekommst du dabei nur, wenn deine Datenquelle eine andere Codierung als deine Ausgabe benutzt. Unter Windows beispielsweise benutzen die meisten grafischen Editoren die Codepage 1252 (oder gleich UCS-2, eine Untermenge von UTF-16), die Eingabeaufforderung benutzt aber Codepage 437 oder etwas Ähnliches. In diesem Fall musst du die Strings umwandeln, z.B. mit MultiByteToWideChar/WideCharToMultiByte. Unter Linux könntest du dir mal die Funktionen in iconv.h anschauen. Aber wie gesagt, zuerst solltest du prüfen, ob du überhaupt unterschiedliche Codierungen hast. was ich dazu sagen muss, dass ich nach dem auslesen des Strings, gleich den namen in einer if Abfrage verwende, die if abfrage erkennt sicherlich dann die Umlaute nichtWenn du Umlaute in den Stringliteralen in deinem Code hast (was laut Standard sowieso nicht erlaubt ist), dann kommt es darauf an, welche Codierung dein Quellcodeeditor benutzt Zitieren
d.uNd.eE Geschrieben 14. Februar 2008 Geschrieben 14. Februar 2008 Ich hab das immer mit ner Funktion in der Art char[2] foo cin>>foo[1]; if(foo[1]=='ü') { foo[1]='u'; foo[2]='e'; };[/PHP] nur so als kleines, wohl kaum auf direkt übertragbares Beispiel Ja, ich weiss, exploitable is der code auch Zitieren
TDM Geschrieben 15. Februar 2008 Geschrieben 15. Februar 2008 Stringobjekte haben doch eine Replacefunktion... Aber für Notfälle: string ReplaceString(const string &stringSearchString, const string &stringReplaceString, string stringStringToReplace) { string::size_type pos = stringStringToReplace.find(stringSearchString, 0); int intLengthSearch = stringSearchString.length(); while(string::npos != pos ) { stringStringToReplace.replace(pos, intLengthSearch, stringReplaceString); pos = stringStringToReplace.find(stringSearchString, 0); } return stringStringToReplace; } :beagolisc Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.