字符串和用户输入C ++

时间:2015-11-04 11:44:29

标签: c++

我应该从用户那里读取一个整数 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;
}

1 个答案:

答案 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 ++的人,请注意使用typesafebound-safescope-safe C ++。

所以,除非你称自己为new,否则不会delete adept。使用C ++提供的算法和容器,而不是发明自己的算法和容器。