0

我想从用户那里获取一个字符串并将其转换为一个int数组。如果字符是+-*/,则什么都不会改变。如果有一个字符 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]);        
     }     

}
4

1 回答 1

1

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

于 2013-10-29T19:03:39.737 回答