Конвертация строки в число в языке программирования C
Перевод строки (string) в целочисленный формат (int) является общей задачей в программировании. В языке Си, для этого используется функция atoi().
Функция atoi() конвертирует строку в целочисленный формат. Строка должна содержать только цифры и символы пробела в начале. Если строка начинается не с цифры или в ней присутствует невалидный символ, то функция вернет результат 0.
Приведем пример кода, который демонстрирует использование функции atoi():
#include
#include
int main() {
char str[20] = "1234";
int num = atoi(str);
printf("Converted number: %d", num);
return 0;
}
В этом примере, функция atoi() принимает строку "1234" и преобразует ее в целое число 1234. Результат выводится на экран с помощью функции printf().
Также следует обратить внимание на то, что функция atoi() может потерпеть неудачу в случае переполнения памяти, поэтому лучше использовать функции, которые предоставляют вам больше контроля над обработкой ошибок, например strtol().
Приведем пример более безопасного кода, использующего функцию strtol():
#include
#include
int main() {
char str[20] = "1234";
char* end;
long num = strtol(str, &end, 10);
if (*end != '\0') {
printf("Error occurred\n");
} else {
printf("Converted number: %ld", num);
}
return 0;
}
В этом примере, функция strtol() также конвертирует строку в целое число, но возвращает значение типа long, а не int. Она также принимает третий аргумент, который указывает системе счисления числа. В этом примере, мы используем 10-чную систему счисления.
Но в отличие от atoi(), функция strtol() также проверяет на ошибки. Если происходит ошибка, она возвращает 0, но может изменить указатель end, чтобы указать место, где произошла ошибка. Мы используем это, чтобы определить, была ли ошибка в нашем случае.
В выводе также используется форматированный вывод printf().
Итак, перевод строки в число в языке Си - это одна из самых базовых и часто используемых задач, которую можно решить с помощью функций atoi() и strtol(). При этом лучше использовать более безопасные функции, которые позволяют контролировать ошибки.