|
Answer» C++ program to print unique words in a file
Write a function that takes a file name as argument and PRINTS all unique words in it.
We strongly recommend you to minimize your browser and try this yourself first
The idea is to use map in STL to keep track of words already occurred.
// C++ program to print unique words in a STRING #include
using namespace std;
// Prints unique words in a file
void printUniquedWords(char FILENAME[]) {
// Open a file stream
fstream fs(filename);
// Create a map to store count of all words
map mp;
// Keep reading words while there are words to read
string word;
while (fs >> word)
{
// If this is first occurrence of word
if (!mp.count(word))
mp.insert(make_pair(word, 1));
else
mp[word]++;
}
fs.close();
// Traverse map and print all words whose count
//is 1
for (map :: iterator p = mp.begin();
p != mp.end(); p++)
{
if (p->second == 1)
cout << p->first << endl;
} }
// Driver program
int main() {
// Create a file for testing and write something in it
char filename[] = "test.txt";
ofstream fs(filename, ios::trunc);
fs << "geeks for geeks quiz code geeks practice for qa";
fs.close();
printUniquedWords(filename);
return 0; }
Output:
code practice qa quiz Thanks to Utkarsh for suggesting above code.
Please write COMMENTS if you find anything incorrect, or you want to share more information about the topic discussed above
HOPE U LIKE THIS ANS PLZ MARK THIS AS BRAINL.ANS
|