У мене лише коротке запитання. Я багато шукав в інтернеті і знайшов кілька рішень, але жодне з них ще не працювало. Я розглядаю перетворення рядка в int, і я не маю на увазі ASCII коди.
Для швидкого розуміння, нам передається рівняння у вигляді рядка. Ми повинні розбити його, правильно відформатувати і вирішити лінійні рівняння. Зараз, кажучи це, я не можу перетворити рядок в int.
Я знаю, що рядок буде у форматі (-5) або (25) і т.д., тому він точно буде цілим числом. Але як це витягти з рядка?
Один із способів, про який я думав, це запустити цикл for/while через рядок, перевірити наявність цифри, витягти всі цифри після цього, а потім подивитися, чи є в ньому початкова '-', якщо є, то помножити int на -1.
Здається, що це занадто складно для такої маленької задачі. Є ідеї?
std::istringstream ss(thestring);
ss >> thevalue;
Для повної коректності вам слід перевірити прапорці помилок.
використати функцію atoi для перетворення рядка в ціле число:
string a = "25";
int b = atoi(a.c_str());
Функція atoi
є вбудованою функцією, яка перетворює рядок в ціле число, припускаючи, що рядок починається з цілочисельного представлення.