Hello!
Would there be an easier way to remove several characters than this?
Code:
while ( file >> line ) {
line.erase( remove(line.begin(),line.end(),'.') , line.end() );
line.erase( remove(line.begin(),line.end(),',') , line.end() );
line.erase( remove(line.begin(),line.end(),'!') , line.end() );
vWords.push_back(line);
}
The for loop not working
Code:
while (file >> szWord) {
for (int i = 0; szWord[i]; i++){
if ( szWord[i] == '.' || szWord[i] == ',' || szWord[i] == '!'){
szWord [i] = ' ';
}
}
vWords.push_back(szWord);
}
The whole code
Code:
int main ()
{
vector<string> vWords1;
vector<string> vWords2;
read_file("1.txt", vWords1);
read_file("2.txt", vWords2);
sort (vWords1.begin(), vWords1.end());
sort (vWords2.begin(), vWords2.end());
vector<string> v;
set_intersection (vWords1.begin(), vWords1.end(),
vWords2.begin(), vWords2.end(), back_inserter(v));
cout << "Intersection has " << v.size() << " elements.\n";
for (size_t i = 0; i != v.size(); ++i)
cout << "The "<< i+1 <<"." << " element is: " << v[i] << "\n";
system("pause");
}
void read_file( const char* name, vector<string>& vWords)
{
ifstream file(name);
string line;
vWords.clear();
while ( file >> line ) {
line.erase( remove(line.begin(),line.end(),'.') , line.end() );
line.erase( remove(line.begin(),line.end(),',') , line.end() );
line.erase( remove(line.begin(),line.end(),'!') , line.end() );
line.erase( remove(line.begin(),line.end(),'?') , line.end() );
vWords.push_back(line);
}
}