C Werte im Arrayfeld zusammenfügen

azdr

Lieutenant
Registriert
Feb. 2005
Beiträge
685
Hi Leute,

Ich hätte da ne Frage gibts in C einen Befehl, welche man einzelne Werte in einem Arrayfeld in eine ganze Integer Zahl zusammenfügen kann?

weil wenn ich das Ganze zu Fuß mache wird das aufwendig.

z.B.:

int GanzeZahl;
int zahl1[10]={1,0,0,2,5,6};

das möchte ich dann hier haben --> GanzeZahl=100256;


danke schon mal!
mfg
 
Zuletzt bearbeitet:
Soweit ich weiß gibt es so eine Funktion nicht, aber man könnte sich so etwas sehr leicht selber schreiben.
Ich hab mal ganz schnell eine geschrieben, sie funktioniert soweit ganz gut:
Code:
int ArrayToNumber( int* iArray, unsigned int iSize )
{
	int i, iNumber = 0;

	for( i=0; i<iSize; i++ )
	{
		iNumber += iArray[i] * pow( 10, iSize-1-i );
	}

	return iNumber;
}

Gruß
BlackMark
 
for (i=0;i<11´;i++){
GanzeZahl = GanzeZahl | ( zahl1 << ( 8 * i ) )
}

wobei ich mir bei 8 nicht sicher bin, da brauchst du hald die größe wie groß eine so eine ziffer von dem zahl1 array ist

EDIT: streich es, ich hab zu kompliziert gedacht
 
int GanzeZahl;
int zahl1[10]={1,0,0,2,5,6};

das möchte ich dann hier haben --> GanzeZahl=100256;

Code:
int i=0, Ergebnis=0;
int zahl1[10]=0;


for(i=9; i>=0; i=i-1)
{
Ergebnis=Ergebnis+(zahl1[i]*pow(10,(9-i)));
}

@BlackMark: OK, deins is sauberer :p So als Funktion mit Variabler Arraygröße.
 
Zuletzt bearbeitet:
@Merle: Vielen Dank und mir fällt auf, dass du in der for-Schleife einen (Tipp-)Fehler hast, i<=0 sollte wohl eher i>=0 heißen, sonst wird die Schleife niemals ausgeführt und dein Ergebnis bleibt immer auf 0!

Gruß
BlackMark
 
Zurück
Oben