我觉得这个问题更多的是我对指针的理解,但这里是。我想用 C 创建一个系统程序来执行数学运算符 value1 value2 等计算。示例数学 + 1 2。这将在屏幕上产生 3。我在比较或汇总数字时遇到困难。这是我到目前为止所拥有的:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( int ac, char* args[] )
{
int total;
if (strcmp(*++args,"+") == 0)
{
}
printf("Total= ", value1);
if (strcmp(*args,"x") == 0)
printf("multiply");
if (strcmp(*args,"%") == 0)
printf("modulus");
if (strcmp(*args,"/") == 0)
printf("divide");
return 0;
}
我可以进行字符串比较来获取运算符,但很难添加两个值。我努力了:
int value1=atoi(*++args);
任何帮助,将不胜感激。
*++args
由于您正在进行预增量++
运算符的优先级高于*
因此指针会增加,然后您会取消引用它,这种情况下您可能永远无法访问您真正想要访问的争论。
如果你有类似的输入
+ 1 2
We have
args[1] = +
args[2] = 1
args[3] = 2;
为什么不能直接访问atoi(args[2])
你可以做类似的事情
int main(int argc, char **args)
{
if(argc != 4)
{
printf("Fewer number of arguements\n");
return 0;
}
else if((strcmp(args[1],"+")) == 0)
{
printf("Sum = %d\n",atoi(args[2]) + atoi(args[3]));
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)