Mathias Brodala: (C) Überschüssiges Leerzeichen

Beitrag lesen

Hallo Martin.

*   - den Flächenumfang (=6a*a),

den Ausdruck "Flächenumfang" lese ich zum ersten Mal; für mich hieß das bisher einfach "Oberfläche".

Ja, ich konnte mir auch keinen Reim darauf machen; bei mir heißt das „Oberflächeninhalt“.

int clength = sizeof(c) / sizeof(calc);

Tip: Die Anzahl der Elemente in einem Array braucht man öfter mal. Es ist praktisch, sich dafür ein Makro zu definieren und das in einem persönlichen Standard-Include unterzubringen:

#define ARRAYSIZE(x)  (sizeof(x)/sizeof(x[0]))

Dann im Programmcode:

int clength = ARRAYSIZE(c);

Gute Idee, danke.

Flächenumfang: 96
                 Volumen: 64
Länge der Raumdiagonale: 6

Hat jemand eine nachvollziehbare Erklärung für das zusätzliche Leerzeichen in der Zeile „Volumen“?

Ja: Mein ewiger Krieg gegen UTF-8. ;-)
Ich vermute, dein C-Sourcecode ist in UTF-8 gespeichert?

Ja, wie alles auf meinem System.

In der ersten und dritten Zeile enthalten die Strings je ein Sonderzeichen, das in UTF-8 mit zwei Bytes codiert wird. Davon weiß die Standardfzunktion strlen() aber nichts, sie zählt die zwei Bytes als zwei Zeichen.

Treffend korrekt und nachvollziehbar, danke! Ich werde mich nach Alternativen zu strlen umschauen.

Viel Spaß und einen schönen Abend noch,

Danke, ebenfalls.

Gruß, Mathias

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
debian/rules