我从键盘输入了一个字符串。您需要从此字符串中获取一个数字。数字取在行首,如果行唤醒像 123 Vasya Pupkin,那么总数为 132。输入格式如下:
0xac
0b1101
123
564.75
编写了以下代码:
char text[256];
memset(text,0,sizeof(text));
popStrCalc(&StrCalc, text); // выгрузка из стека
char * p2=text;
if(*p2 == '0'){
switch (*(p2+1)) {
case 'x':
case 'X':{
resI = strtol(p2+2,NULL,16);
pushMcalcI(&MCALC,resI); // загрузка в стек
break;
};
case 'b':
case 'B': {
resI = strtol(p2+2,NULL,2);
pushMcalcI(&MCALC,resI);
break;
};
}
}
else{
resI = strtol(text,NULL,10);
pushMcalcI(&MCALC,resI);
}
我无法理解的问题是如何区分浮点数和整数。我想转换 float '(float)strtod(text,NULL);'。
您可以通过一个简单的符号来区分 - 在 float 中有一个点或一个字母
e
但可以用一种功能代替
还有一种情况——如果数字太长。虽然它看起来像一个整体,但它可能不适合 32/64。这里,视情况而定。