我收到C++禁止用字將s.at(i)與一個角色進行比較?
某種-fpermissive錯誤的地方我有什麼比較s.at(I)的指針對比的錯誤。
string s;
cout<<"Enter the expression";
getline(cin,s);
int i;
for(i=0;i<s.length();i++)
{
if(s.at(i)=="("||s.at(i)=="["||s.at(i)=="{")
push(s.at(i));
}
for(i=0;i<s.length();i++)
{
if(s.at(i)=="]"||s.at(i)==")"||s.at(i)=="}")
{
x=pop();
if (s.at(i)==x)
continue;
else
{enter code here
cout<<"\nInvalid expression";
return 0;
}
}
}
「我收到一個錯誤」太寬泛。請在這裏粘貼具體的錯誤信息。 – Heri
所以,你的循環確保'i'的值大於或等於零,並且小於字符串的長度,但是你也使用'std :: string :: at()'來檢查索引在編譯器變得困惑的情況下,是否處於邊界? 's [i]'在這裏工作得很好。 –