Escriba una función que tome un nombre de archivo como argumento e imprima todas las palabras únicas en él.
Le recomendamos encarecidamente que minimice su navegador e intente esto usted mismo primero.
La idea es usar el mapa en STL para realizar un seguimiento de las palabras que ya se produjeron.
// 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; }
Producción:
code practice qa quiz
Gracias a Utkarsh por sugerir el código anterior.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA