我想从用户那里获取一个字符串并将其转换为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]);
}
}
答案 0 :(得分:1)
ctype.h
有int isdigit ( int c );
,如果字符不是数字则返回0
,如果是,则返回非零值。