Hallo
Ich muss ein C Programm schreiben, welches einen String
( Zeichenkette 123456 )
In eine Integer Zahl umwandelt und ausgibt.
Ohne die itoa Funktion !
Mein Code schaut so aus, aber irgendwas scheint nicht zu funktionieren, da ein willkührliches Ergebnis herauskommt anstatt der zahl 123456.
Ich starte bei 0 und Zähle in jedem Durchgang den jeweiligen Inhalt vom String dazu , dann mal 10.
Also quasi :
zahl = (0+0x31) * 10 = 10
zahl = (10 + 0x32)*10 = 120
zahl = (120 + 0x33)*10 = 1230
.
.
.
zahl = (123450 + 0x36)*10 = 123456
Was stimmt am Code nicht ?
Code:
#include <stdio.h>
unsigned char zahl_als_text[7] = {'1','2','3','4','5','6','\0'};
unsigned int zahl;
int TextInZahlUmwandeln()
{
unsigned int i;
i=0;
zahl=0;
for (i=0;i<6;i++)
{
zahl = (zahl + zahl_als_text[i]);
zahl = zahl*10;
}
return zahl;
}
int main()
{
TextInZahlUmwandeln(zahl);
printf("TEXT %s ergibt umgewandelt in eine Zahl %i\n",zahl_als_text, zahl);
return 0;
}
Danke schonmal.