Computer Science, asked by dhruvshandilya817, 1 year ago

Write a program that lists the distinct words in a file in alphabetical order in c++

Answers

Answered by subhanshusingh
0
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 <bits/stdc++.h>

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<string, int> 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<string, int> :: 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
Similar questions