Zeichen aus Zahl isolieren, Pointer? cast?
-
Also ich möchte eine Funktion die aus einer Zahl z.B. 523798 ein Zeichen heruasnimmt z.B. das erste also die 5.
Ich hab versucht diese als Integer deklarierte Variable in character umzuwandeln aber das funktionierte nicht.
Als ich es mit Pointrn versuchte hat der Compiler zwar keine Fehlermeldung geliefert aber es kam auch nichts bei raus.Hat jemand dafür vll eine Möglichkeit?
(Bitte mit Anfängermitteln)danke
-
Es gibt extra die Stringstreams, um eine Zahl in einen String reinzutun. In der FAQ gibt es dazu einen Link. Ich würde dir jeweils nur die erste Variante empfehlen. Auf dein Beispiel hin kommt man dann auf folgenden Code:
#include <sstream> #include <string> using namespace std; int number = 523798; ostringstream Str; Str << number; string ZahlAlsString(Str.str()); // Konstruktoraufruf; Str.str() gibt den Wert von ostringstream zurück
Jetzt kannst du ganz einfach mit
ZahlAlsString[0];
auf das erste Zeichen zugreifen.
-
Ich danke dir, ich werde in Zuknft das FAQ genauer durchgehn.
-
EZed schrieb:
Also ich möchte eine Funktion die aus einer Zahl z.B. 523798 ein Zeichen heruasnimmt z.B. das erste also die 5.
im wesentlichen läuft es immer so, daß man mit
int letzteZiffer=523798%10;
an die letze ziffer, also die 8 kommt und mit
int vordereZiffern=523798/10;
an die anderen ziffern, also die 52379 kommt.
das läßt sich zum beispiel zu ner shclefe machen, die alle ziffern ausgibt:
int x=523798; do{ cout<< x%10; }while(x/=10);
will man nur die erste ziffer haben, kann man sich mit diesem trick leicht ne funktion bauen.
int ersteZiffer(int x){ while(x>=10) x/=10; return x; }
aber meistens braucht man eh alle und man hängt sich irgendwie in die oben genannte schleife.
-
und wenn ein dezimalzeichen daraus werden soll, einfach...
char zeichen = (char)(ersteZiffer(523798)+'0');
oder gleich die funktion so umbauen, dass sie char's ausgibt
-
net schrieb:
char zeichen = (char)(ersteZiffer(523798)+'0');
wozu die überflüssigen klammern?
man könnte auch ne inlinefunktion bauen, die dem +'0' einen sprechenden namen gibt.
-
wozu die überflüssigen klammern?
Das frage ich mich bei LISP auch immer :p
-
[OFFTOPIC] @volkard: Geile Sig. Wär was für TGGC
[/OFFTOPIC]
-
Was heißt
x/=10;
?
Sorry wegen der wahrscheinlich dummen frage, aber diesen Ausdruck hab ich noch nie gesehen
-
Das selbe wie x=x/10;
-
Ich glaub das is der einzige Fall, bei dem sich C+++ mit deutscher Grammatik einig werden kann ;).