2015-04-05 3 views
-1

string test = "F'XSXESS '";Разбор строки, содержащей два Apostrophe's

Как бы я разобрал F'XSXESS ', чтобы он захватывал информацию внутри Apostrophe's (XSXESS)?

Выход должен быть XSXESS.

Любая идея о том, как я должен это делать?

Благодарим за помощь, которую вы можете предоставить!

ответ

0

В основном вы хотите, чтобы все символы в строке и переключали состояние разбора на определенные события (в вашем случае встреча \').
Вот небольшой пример:

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, что указывает на конец процесса синтаксического анализа.
Надеюсь, что смогу помочь.

+0

Спасибо за помощь! – ZeroCG

Смежные вопросы