b中 z++;//让z自加一次 rate=10.0;//把10赋给rate,确保读取下个数字时,先计算整数部分} elseif(str.GetAt(i)=='/')//如果str.GetAt(i)是除号{ a[z]=itemp;itemp=0;//把itemp的值放入双精度数组a中,并把itemp的值改为0 z++;//让z自加一次 b[z]='/';//把除号放入字符数组b中 z++;//让z自加一次 rate=10.0;//把10赋给rate,确保读取下个数字时,先计算整数部分}?}?a[z]=itemp;//把最后一个整数itemp的值放入双精度数组a中s=z;//把z的值赋给变量s,用来控制计算结果的循环中的条件}(3)如果字符串中有括号。程序用函数voidBracket(CStringstr0)来解决括号问题,同样,函数以编辑框变量m_strResult为实参,主要思想是把m_strResult先分成3个字符串,比如一个表达式2*(2+3)-6,这个函数的目的是先把表达式2*(2+3)-6分成2*、2+3、-6三个字符串,再计算2+3后,把结果覆盖掉2+3所在的字符串,最后把3个字符串相加,这样就处理掉了括号的问题。具体实现的算法:定义3个字符串变量str1、str2、str3,这三个变量都初始化为空变量,现在开始一个循环,当没有遇到字符“(”时,把每次得到的字符都加在字符串str1上,当遇到字符“(”时,把“(”后的字符都加在字符串str2上,直到遇到字符“)”。当遇到字符“)”时,把“)”后的字符都加在字符串str3上,str2再调用函数计算出它的表达式的值,最后把3个字符串相加,这就解决了括号问题。该函数代码如下:voidCMyDlg::Bracket(CStringstr0){?CStringstr1="",str2="",str3="";?inti=0;