Regular Expression очень полезны в этом случае.
C++ 11 имеет regex библиотека.
#include <string>
#include <regex>
std::string parse_string(const std::string& str) {
static const std::string REGEX_STR = R"__(\$\$(\w|\W)*\$\$)__";
std::regex regex(REGEX_STR);
std::smatch regex_iterator;
if (std::regex_search(str, regex_iterator, regex)) {
return regex_iterator.str();
}
return std::string("");
}
Код может быть улучшен, но он должен служить хорошей отправной точкой. Особый случай должен быть обработан, например: более $$*$$
в строке, и т.д. ...
Примечание:
R"__(\$\$(\w|\W)*\$\$)__";
это для того, чтобы сделать более удобным для чтения регулярное выражение raw string.
Добро пожаловать в StackOverflow. Не могли бы вы показать код, который у вас уже есть, и объяснить, в чем именно проблема, которую вы еще не можете решить в этом коде. – Christophe
[Стандартная библиотека регулярных выражений] (http://en.cppreference.com/w/cpp/regex) может быть полезна. –