Array Elemente als einzelnen Integer festlegen

05/12/2008 - 14:32 von Frank Liebelt | Report spam
Hallo

Ein sinnigeres Subject ist mir leider nicht eingefallen.

Ich habe ein INT Array das wie folgt aussieht.
int arrFoo = {1, 2, 3};

Jetzt möchte ich aus dem Array gerne einen Integer basteln der den Wert
123 hat.

Ich bin jetzt mal hingegangen und habe mit sprintf die einzelnen Felder
in einen String gepackt und diesen dann per atoi zu einem Integer
verwandelt.

Da ich den Weg bis dahin ein wenig umstàndlich finde, wollte ich mal
nachfragen ob es nicht eine elegantere Methode gibt um das Problem zu
lösen.

Gruß
Frank
 

Lesen sie die antworten

#1 Rainer Weikusat
05/12/2008 - 14:46 | Warnen spam
Frank Liebelt writes:
Ein sinnigeres Subject ist mir leider nicht eingefallen.

Ich habe ein INT Array das wie folgt aussieht.
int arrFoo = {1, 2, 3};

Jetzt möchte ich aus dem Array gerne einen Integer basteln der den Wert
123 hat.

Ich bin jetzt mal hingegangen und habe mit sprintf die einzelnen Felder
in einen String gepackt und diesen dann per atoi zu einem Integer
verwandelt.

Da ich den Weg bis dahin ein wenig umstàndlich finde, wollte ich mal
nachfragen ob es nicht eine elegantere Methode gibt um das Problem zu
lösen.



Unkompiliertes Beispiel:

int int_cat(int const *a, unsigned len)
{
int v, ndx;

v = 0;
ndx = 0;
while (ndx < len) v = v * 10 + a[ndx++];
return v;
}

Ob das gut geht (integer overflow), haengt von den Eingabedaten
ab. Mit ein paar Verrenkungen kann man die (ueberfluessige)
Multiplikation im ersten Schleifendurchlauf auch noch vermeiden.

Ähnliche fragen