Int, Char Umwandlung

Gast #76373
Lesenswert?

Hallo,
ich hab nun schon ein paar Versuche gestartet, aber bin bisher zu
keiner Lösung gekommen :( Hab bisher nur AVRs in Bascomp programmiert,
aber dieser Basicinterpereter nicht das Gelbe vom Ei ist versuche ich
mich zur Zeit in C. Leider habe ich bisher noch keine Möglichkeit
gefunden, so easy wie in Bascom zu debuggen...

Problem:
int test = 326;

test soll nun in 3 einzelne Int zerlegt werden:

int x = 3;
int y = 2;
int z = 6;

Wie mache ich das am besten ?

Vielen Dank schon mal im Vorraus

cya
Deramon
Gast #76375
Lesenswert?

Danke :)
Einfach und genial...


Ich war bisher total auf int -> Char umwandlung fixiert. Den Char dann
mit einer funktion zerlegen(wie in Bascom mit Mid(string,start,len)
oder c# string.substring(start,len) und zurück in int umwandlen. Hab so
eine funktion in string.h nicht entdecken können, bzw. komme mit diesen
funktionen nicht so ganz klar.

Interessieren würde es mich aber schon. Gibt es so eine Funktion in C,
falls ja wie würde das in diesem Fall funktionieren ?
Der Bascom code ohne umwandlung von/nach int wäre dafür:
test = "326"
x = Mid(test,1,1);
y = Mid(test,2,1);
z = Mid(test,3,1);

cya
Deramon
Gast #76377
Lesenswert?

Hallo, also wenn das keine compiler- oder interpreterspezifische
Eigenschaft ist geht das in C so:

int test = 326;
int x,y,z;
x = test/100;
y = (test%100)/10; //Divisionsrest der division durch 100 durch 10
z = test%10; //Divisionsrest der division durch 10

mfg florian

was funktioniert ist schon alt
Gast #76378
Lesenswert?

Hallo Karl Florian,

Deine Variante hatte ich vor längerer Zeit auch mal im Einsatz.
Soweit ich mich noch richtig erinnere, war der von WinAVR erzeugte Code
größer als der von der Variante aus meiner ersten Antwort oben.

Ich kann mich aber auch irren.

Grüße,
Peter
Gast #76379
Lesenswert?

Hallo Peter,
das glaube ich mal unbesehen, vielleicht sollte ich in Zukunft schon
beim Problem über die Optimierung nachdenken.
mfg florian

warum heisst C eigentlich C? weil mir A und B nicht mehr gefallen hat.
Gast #76380
Lesenswert?

> warum heisst C eigentlich C? weil mir A und B nicht mehr gefallen
> hat.

Naja, fast. :-)

Es gab in der Tat eine Vorläufersprache namens B, so daß der
Nachfolger eben C genannt worden ist.  A gab's der Legende nach
allerdings nicht. ;-)  (Das B könnte auch ein Abkürzungsbuchstabe
gewesen sein, kann ich mich gerade nicht erinnern.)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren