i got another if statement which i cant understand why its not working?
i got + in the middle of the string alone
this if:
Code:
if((buf[index+1]==' ')||((buf[index-1]>='0')&&(buf[index-1]<='9')))
{
return 0;
}
should return 0 for it.
but in the debugger i see that it doesnt go in
why??
Code:
#include <stdio.h>
int valid_s(char buf[],int index);
int valid(char buf[],int index);
int nex_num(char buf[],int index);
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[4],t;
char buf[] ="-000123 + -143 23 +567 ";
//t=valid(buf,0);
t=valid_s(buf,0);
printf("%d",t);
return 0;
}
int valid(char buf[],int index)
{
if ((buf[index]=='\0')&&(index==0))
{
return 0;
}
if (buf[index]=='\0')
{
return 1;
}
if ((buf[index]!='-')&&(buf[index]!='+')&&(buf[index]!=' ')&&(buf[index]!='\t')&&((buf[index]<'0')||(buf[index]>'9')))
{
return 0;
}
return valid(buf,index+1);
}
int valid_s(char buf[],int index)
{
if ((buf[index]=='\0')&&(index==0))
{
return 0;
}
if (buf[index]=='\0')
{
return 1;
}
if ((buf[index]=='+')||(buf[index]=='-'))
{
if((buf[index+1]==' ')||((buf[index-1]>='0')&&(buf[index-1]<='9')))
{
return 0;
}
if((buf[index+1]=='-')||(buf[index+1]=='+'))
{
return 0;
}
}
return valid_s(buf,index+1);
}