高分,在线等!!!!!急!!大家请帮忙!

LY198196900 2004-08-24 01:48:35
诸如:3*8+5 这种表达式,如何对其进行拆分。请指点的时候加一点必要的源代码,谢谢了哈。
...全文
84 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
LY198196900 2004-08-24
  • 打赏
  • 举报
回复
那这样说吧,我把数字放在一个数组中,把运算符放在一个数组中。接下来,怎么办
怎么对应计算呢?
csdn_cht 2004-08-24
  • 打赏
  • 举报
回复
str[] = "4*2+6-4/2=";

int i = 0;
char c = str[i];
char s[10];
int j=0;
double result = 0;
double d = 0;
while(c!='=')
{
if(c!='+' && c!='-" && c!='*' && c!= '/')
s[++j] = str[i];
else
{
s[j] = 0;
d = atof(s);
switch(c)
{
case '+':
....
case '-':
....
case '*':
....
case '/':
....
}
j=0;
}

}
nogreat 2004-08-24
  • 打赏
  • 举报
回复
就是,遍历所有的操作符,再根据优先级(比如“(”)等,放到一个数组里,最后操作运算。
ncucf 2004-08-24
  • 打赏
  • 举报
回复
怎么还会出现字符串啊??????????????

不就是+-*/四种吗? 可以用个switch语句来区分啊!

LY198196900 2004-08-24
  • 打赏
  • 举报
回复
麻烦你说详细点,最好结合例子吧。谢谢了
LY198196900 2004-08-24
  • 打赏
  • 举报
回复
呵呵,当然了,我还做过空格和回车的分割呢。可惜这里是运算符啊,而且是不定的,并且子字符串中可能还含有运算符,还要分割呢。
ncucf 2004-08-24
  • 打赏
  • 举报
回复
拆分了之后,你可以把那些数字付给一些变量,以后你就可以用来进行运算啊!

操作符也是那样,分别付给一些变量啊!

这是典型的计算器设计里面的东西了!
Kudeet 2004-08-24
  • 打赏
  • 举报
回复
CString m_input="0,男,22,0";

int intage;
int n=m_input.Find(',');
name=m_input.Left(n);

int n1=m_input.Find(',',n+1);
sex=m_input.Mid(n+1,n1-n-1);

int n2=m_input.Find(',',n1+1);
age=m_input.Mid(n1+1,n2-n1-1);
intage=atoi(age);

int n3=m_input.GetLength()-n2-1;
major=m_input.Right(n3);

这是我以前写的分割的代码,不过要知道分割的符号,我这里是逗号
LY198196900 2004-08-24
  • 打赏
  • 举报
回复
你这样做是可以拆分了哈,问题是,计算的时候又怎么办呢?
ncucf 2004-08-24
  • 打赏
  • 举报
回复
晕,你把它作为一个字符串,每一位每一位读出来啊,然后判断是否属于数字区,如果不是,就是操作符了!

比如那表达式在一个编辑框中:
第一步:
char buf[32]="";
GetDlgItemText(IDC_EDIT1,buf,32);

for(int i=0;i++;i<strlen(buf))
if(buf[i]>'0'&&buf[i]<'9')
说明是数字
else
操作符
……
LY198196900 2004-08-24
  • 打赏
  • 举报
回复
数字是数字,操作符是操作符。其实功能就是根据用户输入的表达式,拆分完了,进行计算,最后得到结果。
Jagen在路上 2004-08-24
  • 打赏
  • 举报
回复
你要怎么拆分?

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧