Hallo,
vorweg: Umsetzung in C++ (C auch ok)
Ich möchte die Werte aus verschiedenen Variablen in eine neue Zusammenfügen und zwar nach folgendem Schema.
Die Zielvariable hat zehn Stellen. In diesen Stellen gibt es Plätze die die Werte anderer Variablen aufnehmen sollen ungefähr so:
wert_A belegt Platz 1
wert_B belegt Platz 2,3
wert_C belegt Platz 4,5
wert_D belegt Platz 6,7,8,9,10
Also die Verteilung ist so: ABBCCDDDDD
Beispiel1:
int wert_A = 1; // 1Platz
int wert_B = 85; // 2Plätze
int wert_C = 77; // 2Plätze
int wert_D = 12345; // 5Plätze
Wenn diese Werte in die Zielvariable gelegt werden soll das Ergebniss so aussehen:
int Zielvariable = 1857712345;
Beispiel2: Jetzt wird es interessant
int wert_A = 0; // 1Platz
int wert_B = 85; // 2Plätze
int wert_C = 7; // 2Plätze
int wert_D = 345; // 5Plätze
Wenn diese Werte in die Zielvariable gelegt werden soll das Ergebniss so aussehen:
int Zielvariable = 850700345;
Hier fällt die erste Stelle weg weil A = 0. Werte die weniger Stellen haben als Plätze vorgesehen müssen trotzdem die nullen bekommen zB C = 7 wird zu 07 oder D = 345 wird zu 00345.
Beispiel3:
int wert_A = 0; // 1Platz
int wert_B = 0; // 2Plätze
int wert_C = 4; // 2Plätze
int wert_D = 7; // 5Plätze
Wenn diese Werte in die Zielvariable gelegt werden soll das Ergebniss so aussehen:
int Zielvariable = 400007;
Hier fallen die ersten 4 Stellen weg weil A = 0 und B = 00 und C mit 0 beginnt. Die vier Nullen vor Platz 10 entstehen weil D nur eine Stelle hat aber 5 Plätze belegt.
Ich hoffe es ist klar wie es gemeint ist. Die Schwierigkeit ist zum einen das zusammenführen ansich und vor allem die Zuweisung der Nullen wenn der Quellwert weniger Stellen hat als im Zielwert Plätze dafür vorgesehen sind. Jetzt suche ich dafür eine Lösung die möglichst effektiv und einfach ist, habe aber keine Ahnung wie man das machen kann.
Gruß
vorweg: Umsetzung in C++ (C auch ok)
Ich möchte die Werte aus verschiedenen Variablen in eine neue Zusammenfügen und zwar nach folgendem Schema.
Die Zielvariable hat zehn Stellen. In diesen Stellen gibt es Plätze die die Werte anderer Variablen aufnehmen sollen ungefähr so:
wert_A belegt Platz 1
wert_B belegt Platz 2,3
wert_C belegt Platz 4,5
wert_D belegt Platz 6,7,8,9,10
Also die Verteilung ist so: ABBCCDDDDD
Beispiel1:
int wert_A = 1; // 1Platz
int wert_B = 85; // 2Plätze
int wert_C = 77; // 2Plätze
int wert_D = 12345; // 5Plätze
Wenn diese Werte in die Zielvariable gelegt werden soll das Ergebniss so aussehen:
int Zielvariable = 1857712345;
Beispiel2: Jetzt wird es interessant
int wert_A = 0; // 1Platz
int wert_B = 85; // 2Plätze
int wert_C = 7; // 2Plätze
int wert_D = 345; // 5Plätze
Wenn diese Werte in die Zielvariable gelegt werden soll das Ergebniss so aussehen:
int Zielvariable = 850700345;
Hier fällt die erste Stelle weg weil A = 0. Werte die weniger Stellen haben als Plätze vorgesehen müssen trotzdem die nullen bekommen zB C = 7 wird zu 07 oder D = 345 wird zu 00345.
Beispiel3:
int wert_A = 0; // 1Platz
int wert_B = 0; // 2Plätze
int wert_C = 4; // 2Plätze
int wert_D = 7; // 5Plätze
Wenn diese Werte in die Zielvariable gelegt werden soll das Ergebniss so aussehen:
int Zielvariable = 400007;
Hier fallen die ersten 4 Stellen weg weil A = 0 und B = 00 und C mit 0 beginnt. Die vier Nullen vor Platz 10 entstehen weil D nur eine Stelle hat aber 5 Plätze belegt.
Ich hoffe es ist klar wie es gemeint ist. Die Schwierigkeit ist zum einen das zusammenführen ansich und vor allem die Zuweisung der Nullen wenn der Quellwert weniger Stellen hat als im Zielwert Plätze dafür vorgesehen sind. Jetzt suche ich dafür eine Lösung die möglichst effektiv und einfach ist, habe aber keine Ahnung wie man das machen kann.
Gruß
Zuletzt bearbeitet: