0

ユーザーから文字列を取得し、それをint配列に変換したいと考えています。文字が+-*、またはの場合/、何も変わりません。文字 1 がある場合、整数 1 になります。しかし、正しく動作していませ5+55 -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