从字符串中识别整数

时间:2013-10-29 18:47:46

标签: c parsing

我想从用户那里获取一个字符串并将其转换为int数组。如果字符为+-*/,则不会发生任何变化。如果有一个charecter 1它将是整数1.但是它无法正常工作:如果我输入5+5,它会给出5 -2。我该如何解决这个问题?

#include <stdio.h>
#include <ctype.h>

void main(){

     char x[]={};
     printf("?\n");
     scanf("%s",x);
     int i,k=0;
     int y[7];
     int num=0;


     for(i=0 ; i<4 ; i++){
          if(x[i] != '+' && x[i] != '-' && x[i] != '/' && x[i] != '*' ){
                  num= (num*10)  +((int)x[i]-48);        
          }
          else if(x[i] == '+' || x[i] == '-' || x[i] == '/' || x[i] == '*'){

              y[k] = num;
              num=0;

              k = k+1;


          }
          else if(x[i] == '\n'){
               y[k] = num;

               num=0;
               k++;
               break;     
          }                   
     }

     for(i=0 ; i<4 ; i++){
             printf("%d ",y[i]);        
     }     

}

1 个答案:

答案 0 :(得分:1)

ctype.hint isdigit ( int c );,如果字符不是数字则返回0,如果是,则返回非零值。