Из string в int c: простые способы конвертации в языке С
Чтобы преобразовать строку в целое число в языке программирования C, можно использовать функцию atoi().
Функция atoi() преобразует строку в целое число, используя следующий формат:
int atoi(const char* str);
Где str - строка, которую нужно преобразовать в целое число.
Пример кода:
#include
#include
int main() {
char str[] = "123";
int num;
num = atoi(str);
printf("Целое число: %d\n", num);
return 0;
}
В данном примере преобразуется строка "123" в целое число, которое затем выводится на экран.
Также есть функции, которые могут проверять, было ли успешно преобразование или нет. Это функции strtol() и sscanf().
Функция strtol() преобразует строку в длинное целое число (long int) и проверяет, было ли преобразование успешным или нет. В отличие от функции atoi(), функция strtol() позволяет контролировать обработку ошибок и определять основание системы счисления (2, 8, 10 или 16).
Пример кода:
#include
#include
int main() {
char str[] = "123";
long int num;
char* endptr;
num = strtol(str, &endptr, 10);
if (*endptr) {
printf("Ошибка ввода: %s\n", endptr);
} else {
printf("Целое число: %ld\n", num);
}
return 0;
}
Здесь endptr - указатель на первый символ, который не был преобразован в число. Если endptr указывает на какой-либо символ, это означает ошибку ввода.
Функция sscanf() принимает на вход строку и формат, а затем считывает данные из строки в соответствии с заданным форматом. Она может преобразовывать несколько значений за один вызов и позволяет более гибко обрабатывать ошибки, чем функция atoi().
Пример кода:
#include
#include
int main() {
char str[] = "123";
int num;
if (sscanf(str, "%d", &num) != 1) {
printf("Ошибка ввода\n");
} else {
printf("Целое число: %d\n", num);
}
return 0;
}
Здесь в форматной строке "%d" указывается тип данных, который необходимо считать (целое число).
В зависимости от требований и интерфейса проекта разработчик может выбрать наиболее подходящую для своих целей функцию для преобразования строки в целое число в языке программирования C.