ユーザーから文字列を取得し、それを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]);
}
}