Преобразование строк в целые числа (string to int)
Конвертация C-строки в целочисленное значение является обычной задачей в программировании. В C++ для этого доступна функция std::stoi() из стандартной библиотеки <string>. Данная функция позволяет преобразовать строку в число целого типа. Рассмотрим пример её использования:
#include <iostream>
#include <string>
int main() {
const char* str = "12345"; // пример C-строки
int num = std::stoi(str); // конвертация C-строки в int
std::cout << "Результат конвертации: " << num << std::endl;
return 0;
}
При выполнении данного кода мы получим следующий вывод:
Результат конвертации: 12345
В данном примере мы использовали C-строку "12345" и функцию std::stoi(), чтобы сконвертировать эту строку в целочисленное значение. Затем мы присвоили результат в переменную num типа int и вывели его на экран.
Однако, важно отметить, что функция std::stoi() может вызвать исключение std::invalid_argument, если переданная строка не является допустимым целочисленным значением. Поэтому перед использованием этой функции стоит учесть возможные ошибки. Например:
#include <iostream>
#include <string>
int main() {
const char* str = "123abc"; // недопустимая C-строка
int num;
try {
num = std::stoi(str);
std::cout << "Результат конвертации: " << num << std::endl;
} catch (const std::invalid_argument& e){
std::cerr << "Ошибка: недопустимое целочисленное значение!" << std::endl;
}
return 0;
}
В этом примере мы передали недопустимую C-строку "123abc" в функцию std::stoi(). Так как строка содержит символы, которые не являются допустимыми цифрами, вызывается исключение std::invalid_argument, которое мы перехватываем с помощью блока try-catch. В блоке catch мы выводим сообщение об ошибке.
Также стоит отметить, что функция std::stoi() может обрабатывать отрицательные числа, если перед строкой присутствует знак "-". В таком случае, результат будет отрицательным числом. Рассмотрим пример:
#include <iostream>
#include <string>
int main() {
const char* str = "-42"; // отрицательное C-строка
int num = std::stoi(str); // конвертация C-строки в int
std::cout << "Результат конвертации: " << num << std::endl;
return 0;
}
В данном примере мы используем отрицательную C-строку "-42", что позволяет нам получить результат -42.
В заключение, конвертация C-строки в целочисленное значение - распространенная задача в программировании. Для выполнения этой операции в C++ можно использовать функцию std::stoi(), которая позволяет легко преобразовать C-строку в число типа int. Однако стоит обратить внимание на обработку возможных исключений, связанных с недопустимыми значениями и наличием отрицательных чисел.