int+zahlenauslesen
-
Hallo,
kann mir bitte mal wer sagen wie ich aus einer Variablen des Types int,
deren wert z.b 382 beträgt,
die einzellnen ziffern auslesen und in eigene variablen schreiben kann ?Das heist ich möchte dann
a=3
b=8
c=2haben.
lg
sepp
-
#include <sstream> std::ostringstream os; int zeigen = 254; os << zeigen; // os enthält jetzt "256" mit führenden Leerzeichen. std::string zahl; os >> zahl;
An dieser Stelle könntest dir die Länge von "zahl" holen (zahl.length()) und dann entsprechend die ziffern verarbeiten (zahl.at(0) bis zahl.at(zahl.length()-1).
Oder du nimmst itoa oder was immer deine Standardbibliothek compilerabhängig anbietet.
-
Kleiner Fehler von mir:
zahl = os.str(); nicht os >> zahl.
-
danke für deine antwort,
und noch eine blöde frage,
wo kann ich die befehle und funktionen von der standart bibliothek erfahren ?arbeite mit defC++ und unter hilfe finde ich da nix.
-
Du könntest auch die einzelnen Ziffern in einem Vector speichern, und diesen dann ausgeben, so wie hier:
[cpp]#include<cstdlib> #include<iostream> #include<vector> #include<string> using namespace std; int main() { const string Alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); vector<int> Ziffern; int a; cout << "Bitte geben Sie eine Zahl ein: "; cin >> a; cout << endl; // Ziffern in einem Vector speichern while(a > 0) { Ziffern.push_back(a % 10); a /= 10; } // Elemente des Vectors vertauschen vector<int> Gespiegelt(Ziffern.size()); for(int i = 0; i < Ziffern.size(); ++i) { Gespiegelt[i] = Ziffern[Ziffern.size() -1 -i]; } // Vector ausgeben for(int i = 0; i < Ziffern.size(); ++i) { cout << Alphabet[i] << ": " << Gespiegelt[i] << endl; } cout << endl << endl; system("Pause"); return 0; } [/cpp]
-
@Bobby - Karle
thx,
aber das is mir noch ein bissl zu hoch, habe erst wirklich gerade erst mal angefangen und habe mal die operatoren durch und bin nun gerade bei den anweisungen, if und so weiter.
-
rechne einfach! :
382 / 100 = 3
(382-(100*3))/10= 8
382-3*100-8*10= 2so einfach ist das !!
-
Es gibt da ganz einfache Möglichkeiten - wie schon von luki91 angedeutet:
int i = 382; int a = (i/100)%10; int b = (i/10)%10; int c = (i/1)%10;
oder coole Lösungen
#include <iostream> #include <iterator> #include <vector> template< typename T > T dezimal_ziffern( int i, T out ) { const int pre = i / 10; if( pre ) out = dezimal_ziffern( pre, out ); *out = i % 10; return ++out; } int main() { using namespace std; // ausgeben int i = 382; dezimal_ziffern( i, ostream_iterator< int >( cout, " " ) ); cout << endl; // oder in vector schreiben vector< int > v; dezimal_ziffern( i , back_inserter( v ) ); return 0; }
Gruß
Werner
-
ok fein
ich dank euch leutelg
und ein schönes weekend