C++ 给定一个整数n和n行字符串,如果能在里面找到特定的字符串,就输出

img


我已经不想描述它了,想不出来,难受╯﹏╰
感觉字符数组和指针这一块好难

  1. 使用 getline()函数来读取终端输入的字符串 --> cin本身遇到空格就会结束,所以不能使用
  2. getline()函数碰到换行符 Enter 就会终止读取,所以在执行 cin >> n; 时,键入的换行符也会被它读取,这就导致第一次执行 getline(cin, tmp); 时读取了一个空字符串
  3. 为了解决第二点的问题,在输入了n之后,加一行 cin.ignore() 来忽略输入流里不需要的 Enter

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    int n;
    string s = "";
    cin >> n;
    cin.ignore();
    for (int i = 0; i < n; i++)
    {
        string tmp;
        getline(cin, tmp);
        s += tmp;
        s += " ";
    }

    if (s.find("I") != string::npos
        && s.find("LOVE") != string::npos
        && s.find("CUMT") != string::npos)
    {
        cout << "YES" << endl;
    }
    else
    {
        cout << "NO" << endl;
    }
return 0;
}

img