Hej,dostałem zadanie napisać funkcję która z tekstu wyłapuję pierwszą liczbę i zwraca ją w formacie int. Wygląda na to ,że wszystko jest ok,ale program notorycznie co 2,3 cyfry gubi jedna jedność. Tzn dla 23 zwraca 23, ale już dla 234 zwróci 233,a dla np 234567 - 234565 . Zgupiałem już o co chodzi... Pomoże ktoś?
Kod w C:
#include<stdio.h>
#include<math.h>
int my_atoi(char *);
int main()
{
char tab[100]={"bla bla 23760bla"};
int num;
num=my_atoi(tab);
printf("%d",num);
getchar();
return 0;
}
my_atoi(char tab[100])
{
int i,j,num_tab[10],sum=0;
for(i=0;1;i++) if((tab[i]>=48) && (tab[i]<=57)) break;
for(j=0;(tab[i]>=48) && (tab[i]<=57);i++,j++) num_tab[j]=tab[i]-48;
for(i=j-1,j=0;i>=0;i--,j++) sum+=num_tab[i]*pow(10,j);
return sum;
}