对于我的C程序,用户输入"aY + b = c",其中a,b和c是整数值,Y是"符号常量"。
如何使"aY+b=c"和"aY + b = C"一样工作?基本上,我不确定如何使用scanf(),以便无论用户决定输入多少空格,我都可以从用户输入中获取变量a,b和c。
谢谢!
请考虑以下事项:
法典
#include <stdio.h>
#include <ctype.h>
#define MAX_EQUATION_LEN (1000)
int main(void)
{
char equation[MAX_EQUATION_LEN];
int num, i;
printf("Enter a equation: ");
fgets(equation, MAX_EQUATION_LEN, stdin);
sscanf(equation, "%d", &num);
i = 0;
while(equation[i])
{
if(!isdigit(equation[i]))
break;
else
i++;
}
printf("You entered: %dn", num);
printf("Unhandled string data: %sn", &equation[i]);
return 0;
}
示例运行
输入公式:204Y + 52 = 9
您输入:204
未处理的字符串数据:Y + 52 = 9
逻辑
- 一次将完整的等式作为字符串放入。
- 相应地分析字符串。 在这里,我正在寻找第一个
int
. - 跟踪您在字符串解析过程中所处的位置。
- 继续解析字符串,直到没有更多字符。
我不确定如何使用scanf(),以便无论用户决定输入多少空格,我都可以从用户输入中获取变量a,b和c。
首先不要使用 scanf。你需要编写一个词法分析器和一个解析器,所以写一个词法分析器和一个解析器。