我想从用户那里获取一个字符串并将其转换为一个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]);
}
}