Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Funktion zum wandeln von Sonderzeichen

Empfohlene Antworten

Veröffentlicht

An alle C++ - bro´s, :D

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

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

mein Problem ist wen ich Jürgen in den String speicher und ausgebe wird ja mein ü nicht korrekt dargestellt
Sollte 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?

ganz normal momentan über Tastatureingabe,

später soll das Programm zeilenweise aus einer txt Datei die Namen lesen,

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

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 nicht
Wenn 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 ;)
  • 2 Wochen später...

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 :D

Stringobjekte haben doch eine Replacefunktion... :rolleyes:

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.