当我在GDB运行此不进入,如果即使条件满足如何将字符串逐个字符与字符进行比较?
例如 输入语句:000 第一,如果应该是真实的,但是是假的
下面是完整的代码 该方案被认为检查字符串中出现的全1是在连续的方式
谢谢..
#include<iostream>
#include<limits>
#include<string>
#include<sstream>
using namespace std;
int main()
{
int trials = 0;
cin>>trials;
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
while(trials--)
{
string line;
getline(cin,line);
int i = 0;
int n = line.length();
int d = 0;
int u = 0;
int flag = 0;
for(i = 0; i < n; i++)
{
if(line[i] == '0')
{
flag = 1;
}
if(line[i] == '0' && line[i + 1] == '1' && d == 0)
{
u++;
}
else if(line[i] == '1' && line[i + 1] == '0' && u == 1)
{
d++;
}
}
if(flag == 0)
cout<<"YES"<<endl;
else if(u ==1 && d == 1)
{
cout<<"YES"<<endl;
}
else
cout<<"NO"<<endl;
}
}
'getline'之后'line'的内容是什么?你有没有使用GDB检查过它? –
该行的内容是相同的“000” –
让我们从你告诉我们这是应该做什么开始。顺便说一句,刚刚执行它,第一个如果IS评估真实的,在http://cpp.sh/8vwn - 因此:你甚至在这个时间点使用调试器? – Aziuth