01/10/2018, 16:07
Vấn đề khi sử dụng String
Sau khi e test thử với str="." nhưng nó ko kết thúc chương trình , mặt khác nếu có dòng enter trước đó thì nó sẽ thực hiện kết thúc chương trình . Mọi người cho e hỏi đây là lỗi gì ạ . Em cảm ơn xD
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
string str="";
while (true)
{
cin.ignore();
getline(cin,str);
string res="";
if (str==".")
return 0;
int l=str.length();
for (int i=0;i<l;i++)
{
if (str[i]=='(')
{
res+=str[i];
}
else if (str[i]=='[')
{
res+=str[i];
}
if(str[i]==')')
{
if (res[res.length()-1]=='(')
res.erase(res.length()-1,1);
}
else if (str[i]==']')
{
if (res[res.length()-1]=='[')
res.erase(res.length()-1,1);
}
}
if (res.length()==0)
cout << "yes" << endl;
else
cout << "no" << endl;
}
return 0;
}
Bài liên quan
Mình cũng không giải thích được nhưng mà khi mình in chuỗi str của bạn ra thì bị mất kí tự đầu tiên và nguyên nhân là do câu lệnh cin.ignore(), hóng cao nhân vào giải thích