i wrote this working code which transforms a string of one number into integer using recursion
i want to make a program which transforms number like "-123 56 8 "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); }
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); }



LinkBack URL
About LinkBacks



