Kann man mit dem Präprozessor im gcc irgendwie einzelne Zeichen durch andere ersetzen lassen? Also automatisch? Hintergrund: Ich gebe Strings, die ich im Flash habe, auf einem LCD aus. Das ist ein Standard-HD44780 wie man sie problemlos über Ebay bekommt. Der Zeichensatz ist auch ok und für A-Z, a-z und 0-9, Punkt, Komma und andere Standardzeichen kein Problem. Umlaute allerdings schon. Ich muss z.B. statt "Lüfter" immer "Lõfter" schreiben. Total doof und die pure Schikane, denn sowas Simples muss doch eigentlich der Rechner machen können, also zur Compilezeit versteht sich. Nur wie?
die paar Sonderzeichen kann man auch zu Laufzeit bei der Übergabe zum Display ersetzen.
Harald Umlaut schrieb: > Ich muss z.B. statt "Lüfter" immer "Lõfter" schreiben.
1 | #define ue "õ"
|
2 | |
3 | ...
|
4 | printf("L" ue "fter"); |
5 | // oder
|
6 | printf("L"ue"fter"); |
Jörg W. schrieb: > // oder > printf("L"ue"fter"); In C++ >= 11 wegen String-Suffix:
1 | #define ue "ue"
|
2 | const char *a = "L"ue"fter"; |
1 | 2:17: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] |
Johann L. schrieb: > In C++ >= 11 wegen String-Suffix: OK, kannte ich noch nicht. Normalerweise tendiere ich auch dazu, lieber ein paar Spaces mehr zu schreiben, aber gerade hier ist der Lesefluss natürlich besser, wenn man die Leerzeichen weglässt.
Dem gcc kann man das "execution characterset" mitteilen:
1 | -fexec-charset=charset |
2 | |
3 | Set the execution character set, used for string and character |
4 | constants. The default is UTF-8. charset can be any encoding |
5 | supported by the system’s iconv library routine. |
Wenn man also die iconv-Library des Systems um eine Variante für das 44780 erweitern könnte, wäre das Problem gelöst.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.