Нужно распарсить строку, для этого необходимо найти позицию знака
^
это действие выполняю при помощи данного куска кода
pos = 0;
if( pos = part.find( "^" ) != std::string::npos )
{
n = atoi( part.substr( pos + 1 ).c_str() );
}
при вводе строки
2*x
или
x^2
данный код работает как часы (адекватно находит позицию или отсутствие знака), но если ввести
2*x^2
то pos
становиться равным 1, хотя должен быть равен 3
Согласно приоритету операторов
pos = part.find( "^" ) != std::string::npos
выполняется так:
сначала выполняется part.find( "^" )
, результат сравнивается с std::string::npos
и результат сравнения присваивается pos
.
Т.е. как
pos = (part.find( "^" ) != std::string::npos)
Вы же, наверное, хотели получить функциональность
(pos = part.find( "^" )) != std::string::npos
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В связи с сложностями которые возникают в связи с импортом классов при явном подключении DLL (с помощью winapi), стоит ли его использовать, есть...
Есть задачка, найти сколько чисел до 1000 в которых не повторяются цифрыПытаюсь решить простым перебором, каждого числа в стринг и далее проверяю...
Для вывода даты используя формат в таком виде: