Как включить два условия проверки значения индекса в цикле? - PullRequest
0 голосов
/ 26 октября 2018

Как включить условие проверки двух значений индекса в цикл for?

Я хочу проанализировать строку для синтаксиса массива (найдите позиции '[' и ']' соответственно)

string arrangements="a[1]";

, поэтому я пытаюсь сделать один цикл для цели сложности времени. Я пытался

for(int i=0; i<arrangements.size();i++){

if(arranements[i]=='['){
        cout<<"square opening is at : "<<i<<endl;

  while(arrangements[i]==']' ){

  cout<<"square closing is at : "<<i<<endl;
           i++;
        }
}
}

Я даже пытался

for(int i=0; i<arrangements.size();i++){


  while(arrangements[i]==']' && arrangements[i]=='['){

  cout<<"square closing is at : "<<i<<endl;
           i++;
        }
}
}

извините, я ни с кем не общаюсь, так что спасибо за помощь добрым людям.

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Вы можете использовать find:

for (int i = 0 ; i != arrangements.size(); ++i) {
    if (arranements[i] == '[') {
        std::cout << "square opening is at : " << i << std::endl;
        auto e = arrangements.find(']', i + 1);
        if (e != std::string::npos) {
            std::cout << "square closing is at : " << e << std::endl;
     }
}
0 голосов
/ 26 октября 2018

вы можете использовать if...else if или switch

есть случай с if...else if:

const int size = arrangements.size();
for(int i = 0; i < size; ++i)
{
  const char a = arrangements[i];
  if(a == '[')
    cout << "square opening is at : " << i << endl;
  else if(a == ']')
    cout << "square closing is at : " << i << endl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...