Я не могу вычислить числа, которые не являются целыми числами.Мне нужен способ преобразования символов в строки для использования функции atoi () или, по крайней мере, способ вычисления этих чисел
Я попытался вычесть 48 / '0' из символа.
argv = ADD 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