2017-01-26 1 views
0

Ich bin neu in der Welt von C, also ertragen Sie mit mir. Und ich habe hoch und tief nach einer Antwort gesucht, aber ich muss es noch klar verstehen.C: Hexadezimal verwenden, um UTF-8 (wie Euro) darzustellen

Ich versuche, zum Beispiel das Euro-Symbol (ein erweiterter Zeichenwert) einzugeben und auszugeben. Ich möchte hexadezimale Byte-Kombinationen verwenden. Für den Euro sind dies: 0xE2, 0x82, 0xAC. Ich verstehe, dass Sie in C++ einfach verwenden können \ u20ac, was nicht der Fall in C.

Ich habe versucht, die Hex-Werte zu einem Int zuweisen, aber das hat nicht für mich funktioniert. Ich habe auch versucht, den Dezimalwert des Eurosymbols zu verwenden.

Die Idee hinter meinem Programm ist es, Benutzereingaben (z. B. 100 €) zu nehmen und in eine andere Währung zu konvertieren. Die Unterscheidung der Währungssymbole ist mein Hauptproblem. Gibt es einen anderen Weg als das, was ich versucht habe?

+0

http://en.cppreference.com/w/c/language/string_literal, 'u8 "€"' . – Stargateur

+0

Sie können auch '\ u20ac' in C verwenden. Wer hat gesagt, dass Sie nicht können? –

+0

Ich habe versucht, es zu verwenden, und es wurde ein Fehler (C99 Fehler oder etwas). Haben einige Forschung und jemand irgendwo gesagt, es ist für C++ – pmcg521

Antwort

1

Grundsätzlich kann mit 3 char dargestellt werden.

So können Sie es so machen.

char str[] = { 0xE2, 0x82, 0xAC, 0x00 }; 
printf("str: \"%s\"\n", str); 

Der Ausgang:

str: "€"

+0

Nun, das war weniger kompliziert als ich dachte. Vielen Dank – pmcg521