Конвертация строки в int в языке C
Преобразование типа данных "string" в тип "int" в языке программирования C может быть осуществлено с помощью различных методов и функций. В данном ответе рассмотрим несколько примеров кода, которые помогут вам выполнить эту задачу.
1. Функция atoi():
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "1234";
int number = atoi(str);
printf("%d\n", number);
return 0;
}
В данном примере мы используем функцию atoi() из библиотеки stdlib.h, которая преобразует строку в число типа int. Затем мы выводим результат на экран.
2. Функция sscanf():
#include <stdio.h>
int main() {
char str[] = "5678";
int number;
sscanf(str, "%d", &number);
printf("%d\n", number);
return 0;
}
Функция sscanf() считывает данные из строки, используя форматированный ввод. Мы передаем адрес переменной number, чтобы сохранить прочитанное число.
3. Функция strtol():
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "91011";
char *endptr;
long number = strtol(str, &endptr, 10);
printf("%ld\n", number);
return 0;
}
Функция strtol() преобразует строку в длинное целое число (long) с помощью указанной системы счисления (в данном случае, 10). Эта функция также возвращает указатель на символ, на котором произошло прекращение преобразования.
4. Ручное преобразование символов:
#include <stdio.h>
int main() {
char str[] = "1213";
int number = 0;
for (int i = 0; str[i] != '\0'; i++) {
number = number * 10 + (str[i] - '0');
}
printf("%d\n", number);
return 0;
}
В данном примере мы проходимся по каждому символу в строке и преобразуем его в цифру путем вычитания символа '0'. Затем мы умножаем текущее число на 10 и добавляем полученную цифру.
Независимо от выбранного метода преобразования, важно обратить внимание на возможные ошибки или исключительные ситуации, например, в случае, когда в исходной строке не содержатся только цифры. В таких случаях необходимо предусмотреть соответствующую обработку ошибок.
Надеюсь, что данные примеры смогут помочь вам преобразовать строку в число типа int в языке программирования C. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их. Удачи в программировании!