Тема: функція strtol()
Не розумію функцію strtol(). Що роблять рядки int num1 = strtol(str, &operation, 10); int num2 = strtol(operation + 1 + (*(operation + 1) == ' ' ? 1 : 0), NULL, 10); ????
Ось приклад програми:
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM_LENGTH 10
int main()
{
char str[2 * MAX_NUM_LENGTH + 2];
system("chcp 1251");
puts("Введіть числовий вираз у форматі: число1<оператор>число2");
gets_s(str);
char *operation;
int num1 = strtol(str, &operation, 10);
if (*operation == ' ') {
operation++;
}
int num2 = strtol(operation + 1 + (*(operation + 1) == ' ' ? 1 : 0), NULL, 10);
int result;
switch (*operation) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
printf("Результат: %d\n", result);
return 0;
}