C++: Integer-Variable

R

ricardo1885

Gast
Hey!

Wie kann ich in c++ die Zeichenlänge einer Integer-Variable bestimmen?

mfg,
ricardo1885
 
Der Datentyp Integer ist fest definiert. Dessen Eigenschaften lassen sich also normalerweise nicht ändern.
Was genau meinste du denn mit Zeichenlänge? Vielleicht suchst du den Typ "char". Dessen Länge, bzw. die Länge einer Instanz von eben diesem, kannst du "setzen", indem du einfach ein Array davon, also z.b. "char string[5]", erstellst.
Gruß, Martin
 
...ich möchte überprüfen aus wievielen zeichen die integer-variable besteht. An der betreffenden Stelle kann ich keinen char verwenden.
 
Meinst wenn du int zahl = 634521; hast, willst du wissen wieviele Ziffern die Zahl 634521 hat (das wären sechs)?

#include <ostring.h>
#include <string.h>

int zahl = 634521;
char* zahlString = itoa( zahl );
int ziffern = strlen( zahlString );

Das ist jetzt zwar C und nicht C++, aber es sollte funktionieren.
 
itoa ist nicht im Standard definiert. Und ostring.h ist auch kein Standard-Header. Die haben leider weder was mit (dem Sprachstandard) C noch C++ zu tun.


So bekommt man die Anzahl der Stellen eines int in der Dezimal-Darstellung:
Code:
#include <cmath> /// #include <math.h> in C, in C++ cmath

int x = 4545466;
int anzStellen = static_cast<int>(log10(x)) + 1;

Ich hoffe mal, das ist was Du willst. Bin aus deiner Frage ehrlich gesagt immernoch nicht schlau geworden.


Hups, kleiner Bug :) Für Werte <= 0 ist obige Funktion nicht definiert.


Nochmal neu:
Code:
#include <cmath>

int x = 546456;
int anzStellen = x ? static_cast<int>(log10(fabs(x))) + 1 : 1;

Das ? : find ich zwar immer wieder hässlich, aber es erfüllt hier seinen Zweck.
 
Zuletzt bearbeitet:
Zurück
Oben