VC中如何实现选择性读取

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:16:07
建立一个结构体
struct input
{
float num1;
char fuhao1;
float num2;
char fuhao2;
float num3;
char fuhao3;
float num4;
}inp;

现在输入一个计算方法 包括4个数字 3个运算符号 不定数目的括号
比如(12+7)*(7-8)
如今要选择性读入 不读如括号 存进结构体中
即输入(12+7)*(7-8)与 输入12+7*7-8,得到的结果都是
float num1=12;
char fuhao1=“+”;
float num2=7;
char fuhao2=“*”;
float num3=7;
char fuhao3=“-”;
float num4=8;
换句话说 就是不论有多少括号 括号在哪 都不管 只把数字和+ - * / 赋值到结构体中
我是个新手 请各位多多帮忙啊

思想就是 按找一个字符串读取。然后判断每个位是不是0~9的 数字。是不是括号。如果是括号 忽略进入下一个循环,是数字那么就存成一个字符串 等循环结束后 atof 转换成结构体里面的num 下边一小步骤仅仅是个参考。可以自己再深入编写下。注意标志位的使用
CString str=_T("(12+7)*(7-8)"),strnum1=_T("");
for(int i=0;i<str.GetLenth();i++)
{
if(str.GetAt(i)!='('&&str.GetAt(i)!=')')
{
if(str.GetAt(i)>='0'&&str.GetAt(i)<='9')
{
strnum1 +=str.GetAt(i);
}
……
}
}
mun1=atof(strnum1);

许久不用了。