题意:
给N个名字,M行数据(每行数据不一定多少个字符串),问在这M行数据里面是否有那N个名字
思路:
stringstream或者sscanf处理数据即可。
代码:
#include <iostream>
#include <sstream>
#include <cstring>
using namespace std;
int t, n, l, nd;
string name[30], line;
bool present[30];
string data;
int main()
{
ios::sync_with_stdio(false);
cin >> t;
for (int Case = 1; Case <= t; ++ Case)
{
cin >> n;
for (int i = 0; i < n; ++ i) cin >> name[i];
memset(present, false, sizeof(present));
cin >> l;
getline(cin, line);
while (l --)
{
getline(cin, line);
stringstream sin(line);
while (sin >> data)
{
for (int i = 0; i < n; ++ i)
{
if (data == name[i])
{
present[i] = true;
break;
}
}
}
}
cout << "Test set " << Case << ":\n";
for (int i = 0; i < n; ++ i)
{
cout << name[i] << " is ";
if (present[i]) cout << "present\n";
else cout << "absent\n";
}
cout << "\n";
}
}