У меня есть такие строки
10z45
9999i4a
В принципе int-char-int-optionalchar
Я хочу сделать эту функцию прототипа
void process(std::string input, int &first, char &c, int &last, bool &optional)
Единственное, я не уверен, что лучший способ перебрать строку для извлечения этих значений. Не предпочел бы использовать библиотеку регулярных выражений, кажется, может быть сделано просто?
Используйте поток строк:
#include <sstream>
...
std::istringstream iss(input);
iss >> first >> c >> last >> optional;
Если нет финального символа, значение optional
не будет затронут, поэтому я бы рекомендовал установить его в 0 заранее.
использование std::istringstream
, прочитайте int, char, int, затем попробуйте следующий char:
std::istringstream is(input);
is >> first >> c >> last;
char c2;
optional = (is >> c2);
Я не уверен, что это на 100% то, что вы хотите, но я бы сделал это таким образом.