i wrote this working code which transforms a string of one number into integer using recursion
Code:
#include <stdio.h>
int one_num(char buf[],int index,int start);
int rid(char buf[],int index,int x);
int main()
{
int res;
char buf[] ="-000123 ";
res=one_num(buf,0,0);
printf("%d",res);
return 0;
}
int one_num(char buf[],int index,int start)
{
int y=1,x = 0;
if(buf[start]=='-')
{
y=-1;
index++;
}
if(buf[start]=='+')
{
index++;
}
x=rid(buf,index,0)*y;
return x;
}
int rid(char buf[],int index,int x)
{
if ((buf[index]<'0')||(buf[index]>'9'))
{
return x;
}
x *= 10;
x += buf[index]-'0';
return rid(buf,index+1,x);
}
i want to make a program which transforms number like "-123 56 8 "
into numbers of an array
i wrote a code wich should find the next number and transforms it.
but its not working
rid_next should return the index of the next number
but its not working
Code:
#include <stdio.h>
int rid_next(char buf[],int index,int x);
void spin(char buf[],int arr[],int index,int num);
int one_num(char buf[],int index,int start);
int rid(char buf[],int index,int x);
int main()
{
int arr[2];
char buf[] ="-000123 143 ";
spin(buf,arr,0,0);
printf("%d %d\n",arr[0],arr[1]);
return 0;
}
void spin(char buf[],int arr[],int index,int num)
{
int loc;
if (index=='\0')
{
return;
}
arr[num]=one_num(buf,index, index);
loc=rid_next( buf,index,0);
spin(buf,arr,loc,num+1);
}
int one_num(char buf[],int index,int start)
{
int y=1,x = 0;
if(buf[start]=='-')
{
y=-1;
index++;
}
if(buf[start]=='+')
{
index++;
}
x=rid(buf,index,0)*y;
return x;
}
int rid(char buf[],int index,int x)
{
if ((buf[index]<'0')||(buf[index]>'9'))
{
return x;
}
x *= 10;
x += buf[index]-'0';
return rid(buf,index+1,x);
}
int rid_next(char buf[],int index,int x)
{
if ((buf[index]<'0')||(buf[index]>'9'))
{
return index;
}
return rid(buf,index+1,x);
}
??