int[] nach int formatieren
-
Hallo Community,
ich suche nach einer geeigneten Funktion oder Herangehensweise um folgendes zu realisieren:
Es gibt ein integer-Array mit drei Einträgen, z.B.:
int[0] = 1
int[1] = 2
int[2] = 3Jetzt möchte ich aus diesem Array gerne eine Integer-Variable als Sequenz der Array-Einträge initialisieren. In obigem Beispiel also sollte die Integer-Variable den Wert 123 bekommen.
Vielen Dank im voraus,
Jas
-
sstream ss;
ss << int[0] << int[1] << int[2];
int out;
ss >> out;
-
Sorry, statt sstream ss muss es natürlich stringstream ss (aus dem Standardnamespace) heißen.
-
Da gibt es mehrere Möglichkeiten.
const int size= 3; int a[size] = {1,2,3}; int temp = 0; for (int i = 0; i < size; ++i ) temp += a[i]* pow (10,float(size-i-1) ); std::cout << temp << "\n"; //oder std::stringstream s; for (int i = 0; i < size; ++i) s << a[i]; temp = 0; s >> temp; std::cout << temp;Wobei mir aber die zweite Variante irgendwie besser gefällt. (Da nichts berechnet werden muss).
-
Sowas? (Das assert ist nur ne Approximation ;))
template<size_t size> int ToInt( int ( &list )[size] ) { assert( size - 1 <= log10( static_cast<float>( std::numeric_limits<int>::max() ) ) ); int result = 0; int f = 1; for ( int i = size-1; i >= 0; --i, f *= 10 ) result += list[i] * f; return result; }
-
x=100*a[0]+10*a[1]*1+a[2];oder
int x=0; for(int i=0;i!=3;++i) x=10*x+a[i];
-
Hallo Community,
vielen Dank für Eure Hilfe.
Ich hab's letztendlich über den Vorschlag von volkard realisiert.
Liebe Grüße,
Jas
-
Wobei die Methode von Volkard aber nur für die Ziffern von 0 bis 9 funktioniert, bei größeren Zahlen kommen "komische" Werte heraus (nimm daher besser die strinstream-Variante).
-
Th69 schrieb:
Wobei die Methode von Volkard aber nur für die Ziffern von 0 bis 9 funktioniert, bei größeren Zahlen kommen "komische" Werte heraus (nimm daher besser die strinstream-Variante).
Je nach Anwendung können die komischen Werte auch die gesuchten sein.
Ich habe a[0] Hundert-Euro-Scheine, a[1] Zehn-Euro-Scheine und a[2] Ein-Euro-Scheine (Falschgeld). Wieviel Geld habe ich zusammen?
Da ist die "komische" Rechnung die richtige und die Aneinanderhängung der Zahlen ist dir falsche. Daß Jaspar aber eh davon ausging, daß alle Ziffern unter 9 sind, also daß er eine Zahl aus Ziffern bauen will, habe ich mir einfach so gedacht.