gpt4 book ai didi

c - 我需要从 argv 输入计算数字,但数字不是整数,而是字符。我该如何施放?

转载 作者:行者123 更新时间:2023-11-30 16:19:19 25 4
gpt4 key购买 nike

我无法计算非整数的数字。我需要一种将字符转换为字符串以使用 atoi() 函数的方法,或者至少需要一种计算这些数字的方法

我尝试从字符中减去 48/'0'。

argv = 添加 2 3 5 7 11 13

#define MINIMUM_ARGS 2

int main(int argc, char** argv)
{
int i = 0;
int calc = 0;
char string[2] = { 0 };
if ((strcmp(argv[1], "SUB") == 0 || strcmp(argv[1], "ADD") == 0) && ((argc - MINIMUM_ARGS) > 1))
{
string[0] = argv[2]; //Making calc be the value of the first number.
calc = atoi(string);
for (i = 3; i < argc; i++)
{
if (strcmp(argv[1], "SUB") == 0)
{
if (strlen(argv[i]) > MINIMUM_ARGS)
{
calc -= atoi(argv[i]);
}
else
{
calc -= atoi(argv[i] - 48);
}
}
else
{
if (strlen(argv[i]) < MINIMUM_ARGS)
{
string[0] = argv[i];
calc += atoi(string);
}
else
{
calc += atoi(argv[i]);
}
}

}
printf("Result: %d", calc);

}

预期 = 41得到 = 0

最佳答案

在我看来,你让事情变得比需要的更复杂。我不明白为什么在将输入字符串转换为数字的代码中使用 MINIMUM_ARGS - atoi 就是您所需要的。

也许像:

#define MINIMUM_ARGS 3

int main(int argc, char** argv)
{
int i = 0;
int calc = 0;
if ((strcmp(argv[1], "SUB") == 0 || strcmp(argv[1], "ADD") == 0) && (argc >= MINIMUM_ARGS))
{
calc = atoi(argv[2]);
for (i = 3; i < argc; i++)
{
if (strcmp(argv[1], "SUB") == 0)
{
calc -= atoi(argv[i]);
}
else
{
calc += atoi(argv[i]);
}

}
printf("Result: %d\n", calc);

}
}

关于c - 我需要从 argv 输入计算数字,但数字不是整数,而是字符。我该如何施放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55651822/

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