我应该从用户那里读取一个整数 n ,然后是 n 单词,接着是后面的一个单词序列和标点符号以END结尾。例如:
2 foo d
foo is just food without the d . END
n 字将从第二行“编辑”。所以它会显示为:
*** is just food without the * .
我想我可以弄清楚编辑部分。我似乎无法弄清楚如何读取...中的任何帮助非常感谢!
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
string *redact = new string[n]
for(int i = 0; i < n; ++i)
cin >> redact[i] // this part works!
return 0;
}
答案 0 :(得分:2)
以下代码将满足目的。
#include <iostream>
#include <string>
#include <set>
int main()
{
int n;
std::cin >> n;
std::set<std::string> redact;
std::string word;
for(int i = 0; i < n; ++i)
{
std::cin >> word;
redact.insert(word);
}
while( std::cin>> word && word != "END" )
{
if ( redact.find(word) == redact.end() )
std::cout<<word<<' ';
}
std::cout<<'\n';
return 0;
}
我相信你是一个学习C ++的人,请注意使用typesafe
,bound-safe
和scope-safe
C ++。
所以,除非你称自己为new
,否则不会delete
adept
。使用C ++提供的算法和容器,而不是发明自己的算法和容器。