Dezimalzahl 0 in char-Array

Hallo,

ich möchte die Dezimalzahl 0 (also als Byte „0000 0000“) an einer beliebigen Stelle in einem Character-Array ablegen. Da Dezimal 0 aber binär gleich dem ‚\0‘-Character ist, interpretiert das Array die Dezimal-0 als String-Ende, d.h. alles was nach der 0 im Character-Array kommt, wird nicht mehr ausgegeben.

Fragt bitte nicht, warum ich das machen muss, ich muss es einfach machen. Es geht nicht anders. Glaubt mir.

Meine Frage ist: Ist es überhaupt irgendwie möglich eine Dezimale 0 mitten in einem Character-Array zu hinterlegen, ohne dass dieses als String_ende aufgefasst wird?

Danke für jeden Tipp,
victor

Hallo,

ich möchte die Dezimalzahl 0 (also als Byte „0000 0000“) an
einer beliebigen Stelle in einem Character-Array ablegen.

Das ist kein Problem, du musst nur irgendwo anders die Länge dieses Strings speichern.

Da

Dezimal 0 aber binär gleich dem ‚\0‘-Character ist,
interpretiert das Array die Dezimal-0 als String-Ende, d.h.
alles was nach der 0 im Character-Array kommt, wird nicht mehr
ausgegeben.

Wie gibst du denn aus?

Fragt bitte nicht, warum ich das machen muss, ich muss es
einfach machen. Es geht nicht anders. Glaubt mir.

Das ist nich ungewöhnlich. Alles, was mit binärdaten arbeitet, muss sowas machen.

Grüße,
Moritz

Hallo Viktor,

alles was nach der 0 im Character-Array kommt, wird nicht mehr
ausgegeben.

Das gilt nur für mitgelieferte Optionen, wie cout, printf(), etc. Du kannst Dir aber einen eigenen Parser basteln (der die einzelnen Zeichen abrattert und auswertet), zum Lesen wie auch zum Schreiben, dann bestimmst Du es, was „wegen der Null“ gemacht wird, und was nicht.

Du kannst auch weiteren Steuerzeichen eine bestimmte Bedeutung zuordnen, also:
22 - macht dieses
23 - macht jenes

lg
Martin B

Hallo zusammen,

Danke für die schnelle Hilfe.
Jetzt klappt’s. Ich wollte das char-Array nach dem Befüllen per Socketverbindung verschicken.
Und da kann man der send-Funktion ja die Groesse der zu verschickenden Daten angeben. Hatte da dummerweise immer nur strlen(char-Array) stehen. Habe jetzt einfach die (immer konstante) Groesse des Arrays als Zahl eingetragen und es geht!

Also, Danke nochmal für die super-Tipps.

Gruß,
victor