Programa C++ para imprimir palabras únicas en un archivo

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *