Im String hex Werte eingeben

Persönliche Seite #364716
Lesenswert?

Mal angenommen, Du redest von der Angabe von Stringkonstanten in C oder
C++, dann prinzipiell ja.

  char_variable = "Sch\x94nen Abend";

Die Auswertung der hexadezimalen Konstante stoppt am ersten ungültigen
Zeichen;

  char_variable = "Sch\x940nen Abend";

wird daher zu seltsamen Effekten führen, da 0 ein gültiges Zeichen ist,
damit wird 0x940 gelesen ...

Daher empfiehlt sich folgende Schreibweise:

  char_variable = "Sch\x94""nen Abend";

Alternativ können auch oktale Zahlen verwendet werden:

  char_variable = "Sch\0224nen Abend";

Eine Codierung für Dezimalzahlen gibt es allerdings nicht.
#364717
Lesenswert?

char string[] = "Sch\x94nen Abend";

Das Stichwort (zur Suche mit Google= lautet:
Escape Sequence
Wann immer Du in C irgendetwas spezielles in einem
String brauchst, was nicht durch die druckbaren
Zeichen im 7-bit ASCII Zeichensatz abgedeckt ist,
braucht man eine Escape Sequence.

Übrigens kann es sinnvoll sein, den String in 3 Teil-Strings
zu zerlegen, da der Parser sonst unter Umständen Teile
des nachfolgenden Textes mit in die Hex-Zahl reinnimmt.

char string[] = "Sch" "\x94" "nen Abend";

Diese Loesung beruht auf der Verpflichtung des Compilers
einzelne String Sequenzen zu einer einzigen String Sequenz
zusammenzufassen. Damit ermöglicht sich dann auch Folgendes:

#define OE_STRING "\x94"

char string[] = "Sch" OE_STRING "nen Abend";

ist n'bischen besser zu lesen als mit den Hex Codes
direkt im String.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren