C++ 代码优化:用 C++ 修改并完善算术表达式解析代码
C++ 代码优化:用 C++ 修改并完善算术表达式解析代码
以下是修改后的代码:
#include <iostream>
#include <cstring>
using namespace std;
void E();
void T();
void F();
char exp[50]; //算术表达式区
int i = 0; //当前字符位置
char w; //当前字符
int main()
{
cout << "请输入表达式:";
cin >> exp;
w = exp[i++]; //读取第一个字符
E();
if (w == '\0') //如果已到达字符串结尾
cout << "表达式合法!" << endl;
else
cout << "表达式不合法!" << endl;
return 0;
}
void E()
{
T();
while (w == '+' || w == '-')
{
w = exp[i++]; //读取下一个字符
T();
}
}
void T()
{
F();
while (w == '*' || w == '/')
{
w = exp[i++]; //读取下一个字符
F();
}
}
void F()
{
if (w == '(')
{
w = exp[i++]; //读取下一个字符
E();
if (w != ')')
{
cout << "表达式不合法!" << endl;
}
else
w = exp[i++]; //读取下一个字符
}
else if ((w >= 'a' && w <= 'p') || (w >= '0' && w <= '9'))
{
w = exp[i++]; //读取下一个字符
}
else
{
cout << "表达式不合法!" << endl;
}
}
修改说明:
- 将
printf改为cout,将scanf改为cin。 - 在主函数中判断是否已到达字符串结尾,如果未到达则表达式不合法。
- 将
char* argv[]参数删除,因为未使用。 - 在主函数中去掉
argc参数,因为未使用。 - 将
main函数的返回类型改为int。 - 在头文件中添加
<cstring>,以使用字符串相关函数。
原文地址: https://www.cveoy.top/t/topic/oafT 著作权归作者所有。请勿转载和采集!