После чтения целого числа из входного потока, вы должны использовать cin.ignore();
перед чтением любых строк из входного потока.
cin.ignore();
игнорирует символ "новая строка".
Кроме того, вы не можете прочитать строку, содержащую несколько пробелов с cin >> str;
. Вы должны использовать getline(cin, str);
для чтения строки.
Ваш модифицированный код:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
string str;
cin >> n;
cin.ignore();
string str1 = "not";
while (n--) {
getline(cin, str);
if (str.find(str1) != string::npos)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
Введите:
7
a
bbbbbbbbbb
not bad
not good
not not not not
NOT
aaaaaanotbbb
Выход:
NO
NO
YES
YES
YES
NO
YES