如何在for循环中包含两个索引值的测试条件



如何在for循环中包含两个索引值测试条件?

我希望解析数组语法的字符串(分别查找"["one_answers"]"的位置(

string arrangements="a[1]";

因此,出于时间复杂性的目的,我尝试在一个for循环中进行。我试过

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++;
}
}
}

对不起,我没有和任何人联系,所以感谢你们帮助善良的人们。

您可以使用if...else ifswitch

存在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;
}

您可以使用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;
}
}

最新更新