Используйте функцию strtol для преобразования строк в числа
Функция strtol является одной из функций стандартной библиотеки языка программирования C, которая позволяет преобразовывать строковое представление числа в числовое значение определенного типа.
Синтаксис функции следующий:
c
long int strtol(const char* str, char** endptr, int base);
Аргументы функции:
- `str`: указатель на строку, которую необходимо преобразовать в число.
- `endptr`: указатель на указатель на символ, который не может быть преобразован в число. Если этот аргумент равен NULL, то он игнорируется.
- `base`: система счисления, в которой хранится число. Должна быть в диапазоне от 2 до 36. Если значение этого аргумента равно 0, то система счисления определяется автоматически. Если значение аргумента не лежит в указанном диапазоне, результат не определен.
Функция возвращает полученное числовое значение типа `long int`.
Пример использования функции:
c
#include
#include
int main()
{
char str[] = "15 apples";
char* endptr;
long int value = strtol(str, &endptr, 10);
printf("Value: %ld\n", value);
printf("Endptr: %s\n", endptr);
return 0;
}
В этом примере мы преобразуем строку "15 apples" в число с помощью функции strtol. Мы указали систему счисления 10, так как это десятичная система, в которой записано число. Функция вернет число 15. При этом указатель endptr будет указывать на символ 'a', так как это первый символ в строке после числа, который не может быть преобразован в число.
Также можно использовать функцию для преобразования числа из другой системы счисления, например, шестнадцатеричной:
c
#include
#include
int main()
{
char str[] = "2a";
char* endptr;
long int value = strtol(str, &endptr, 16);
printf("Value: %ld\n", value);
printf("Endptr: %s\n", endptr);
return 0;
}
В этом примере мы указали систему счисления 16, так как наше число написано в шестнадцатеричной системе. Функция вернет число 42, так как в шестнадцатеричной системе число 2a соответствует десятичному числу 42. При этом указатель endptr будет указывать на символ '\0', так как после числа больше нет символов в строке.