В основном вы хотите, чтобы все символы в строке и переключали состояние разбора на определенные события (в вашем случае встреча \'
).
Вот небольшой пример:
int main() {
std::string test = "FFF'XSXSXSX'FFFFF";
std::string result;
bool state = 0;
for(int i = 0; i < test.length(); i++) {
if(test.at(i) == '\'') {
state = !state;
continue;
}
if(state)
result.push_back(test.at(i));
}
std::cout << result << std::endl;
return 0;
}
Для простоты я выбрал логическое значение, чтобы описать мое текущее состояние. Этот код, вероятно, все еще не самый лучший вариант, потому что он также проанализирует FF'XX'FFFF'CC'
на FFCC
. Вы можете решить эту проблему, добавив «exit» -state, что указывает на конец процесса синтаксического анализа.
Надеюсь, что смогу помочь.
Спасибо за помощь! – ZeroCG