gpt4 book ai didi

command-line - 帮助基本编程

转载 作者:行者123 更新时间:2023-12-04 04:25:21 26 4
gpt4 key购买 nike

我觉得这个问题更多是我对指针的理解,但这里是。我想在 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

我们有

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;
}

关于command-line - 帮助基本编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com