如何在for循环中包含两个索引值测试条件?
我希望解析字符串以获取数组语法(分别找到'['和']'的位置)
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++;
}
}
}
对不起,我没有与任何人保持联系,因此感谢您对好人的帮助。
答案 0 :(得分:0)
您可以使用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;
}
答案 1 :(得分:0)
您可以使用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;
}
}