C/C++ Int Werte zusammen fügen
-
Hi
Bei meinen Program habe ich ein int array, was folgende Werte hat.
int out [15]={2,3,6,5,7,8};
Jetzt möchte ich ein Array daraus zusammenfügen, welches immer jeweils 3 Ziffern von diesen Zusammenfügt, also:
int end1 [8]={236,578};
Hat jemand eine Idee, wie das Klappen könnte:
Mein Versuch:int c=0; int end1 [26][3]; char end[26][2]; for (int i=0;i<15;i+=3){ sprintf(end[c][i],"%d%d%d",out[i],out[i+1],out[i+2]); c++; end1[c]=atoi(end[c][i]); cout << " " << end1[c]; } cout << " " << out1[i][c]; }Hat jemand ne Idee.
-
Wenn die Ziffern vom Array
outimmer im Bereich 0 bis 9 liegen, dann geht das ja relativ einfach. Nur so schnell hingeschmiert:for(int i = 0; i < OUT_LENGTH; i += 3) { int var = out[i] * 100 + out[i] * 10 + out[i]; // var irgendwo speichern ... }Grüssli
-
int Stellen = 0; int Zahl = 0; Stellen += x[2] / 10 + 1; Zahl += x[2] * Stellen; Stellen += x[1] / 10 + 1; Zahl += x[1] * Stellen; Stellen += x[0] / 10 + 1; Zahl += x[0] * Stellen;
-
Die Ziffern im Array liegen leider nicht immer im Bereich von 0-10. In wircklichkeit sind das Acii Werte.
Ich möchte nämlich ein Programm schreiben, dass einen Text cryptet. Dafür möchte ich, dass ich die Ascii Werte von jeweils 3 Ziffern zussammengefügt werden.
BSP:
05 18 65 55 66 77in Blöcke geteilt :
051865 556677.
-
Aber Danke, dass müsste ja dann im Prinzip so gehn:
int var = out[i] * 10000 + out[i] * 100 + out[i];
-
Ungetestet, aber so sollte das vom Prinzip her fuer drei beliebige nicht-negative Zahlen gehen:
stringstream puffer; puffer << zahl1 << zahl2 << zahl3; int ergebnis; puffer>>ergebnis;Idee dabei: Beim Schreiben landen die drei Zahlen nacheinander ohne Leerzeichen im Puffer. Beim Lesen sollte der Parser daher einen einzigen grossen int erkennen.
edit: Getestet, es geht!