Перевод текста в число - C (СИ)
Формулировка задачи:
Мне нужно перевести текст в число. На входе шестандцатиричное чесло в текстовом виде, надо получить инт. Atoi сдесь не помогает, может есть подходящий аналог? Или надо самому это описывать?
Решение задачи: «Перевод текста в число»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h> /* strtol */
int main ()
{
char num1[] = "25cf16";
char num2[] = "0x6abcd";
long int li1, li2;
li1 = strtol (num1, NULL, 16);
li2 = strtol (num2, NULL, 0);
printf("Hexadecimals:\t%s,\t\t%s\n", num1, num2);
printf ("Integers:\t%ld,\t%ld\n", li1, li2);
getchar();
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с памятью и строками
- Объявление двух переменных типа char для хранения строк
- Объявление двух переменных типа long int для хранения чисел
- Использование функции strtol для преобразования строки в число, с указанием основания системы счисления (16 для шестнадцатеричной системы)
- Вывод исходных строк на экран
- Вывод преобразованных чисел на экран
- Ожидание нажатия клавиши для завершения работы программы
- Возвращение значения 0, сигнализирующего о успешном завершении работы программы