Wandlung eines Integers in ein Array

Post Reply
Message
Author
Herbert Maschke

Wandlung eines Integers in ein Array

#1 Post by Herbert Maschke »

Hallo. Ich hab einen Integer, beispielsweise x = 37.
Nun moechte ich daraus ein Array machen das 32 Zeichen lang ist und in
dem dann 3 7 0 0 0 0 0 .... steht
wie realisiere ich das?
thx

rattengift

Re: Wandlung eines Integers in ein Array

#2 Post by rattengift »

> Nun moechte ich daraus ein Array machen das 32 Zeichen lang ist

einen array von integers oder einen string?
falls integers: die zahl soll jeweils linksbündig sein, oder? also 370000..., 374400...?

Berni

Re: Wandlung eines Integers in ein Array

#3 Post by Berni »

Wird der volle Integerbereich verwendet, oder gibt es irgendwelche Einschränkungen? Welches Ziel wird verfolgt?

rattengift

Re: Wandlung eines Integers in ein Array

#4 Post by rattengift »

sollen auch negative zahlen berücksichtigt werden?
wie du siehst reichen deine angaben nicht aus, um die frage zu beantworten.

hier trotzdem mal einen lösungsansatz für einen bestimmten fall (nämlich nichtnegative integers):<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">int n = 37;
int a [32];
int len;

memset (a, 0, sizeof a / sizeof a[0]);

if (n > 0) // nur dann ist log definiert
{
len = 1 + (int) log10 ((double) n); // anzahl ziffern

while (len--) // für alle ziffern 0..len-1 (aber rückwärts)
{
a [len] = n % 10; // rechteste ziffer im array ablegen...
n /= 10; // ...und aus n rechts hinausschieben
}
}</font><hr></pre></blockquote>

rattengift

Re: Wandlung eines Integers in ein Array

#5 Post by rattengift »

ich hab den code natürlich nicht getestet, bevor ich ihn gepostet habe. inzwischen hab ichs aber getestet. die sache mit dem memset ist natürlich falsch (oder: nur "teilweise" richtig). aber initialisieren mit memset ist sowieso mist, besser also ein loop.<font face="Courier New"> ( for (j=0; j < sizeof a / sizeof a[0]; j++) a[j]=0; )</font><!--fixed-->

naja, herbert scheints ja sowieso nicht mehr zu interessieren, aber ich wollte den fehler halt trotzdem nicht so stehen lassen.

Post Reply