2015-11-04 2 views
0

Я должен прочитать целое п от пользователя, который является последующим п слов, а затем, что следует после этого представляет собой последовательность слов и знаков препинания останавливали словом КОНЕЦ. Например:Строки и пользовательский ввод С ++

2 foo d 
foo is just food without the d . END 

В п слова должны быть «отредактированный» от второй линии. Таким образом, он будет отображаться как:

*** 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

Ваш образец кода даже не компилируется. –

+0

@ πάνταῥεῖ missing ';' ... panic? – AntiHeadshot

+3

@AntiHeadshot Нет паники, только что заявил факт. OP должен опубликовать свой код _real_. –

ответ

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++.

Таким образом, нет newdelete, если вы не можете позвонить себе adept. Используйте алгоритмы и контейнеры, предоставляемые C++, вместо того, чтобы изобретать свои собственные.

Смежные вопросы