begin process at 2012 05 29 19:27:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

nombre d'occurence des termes d'un fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

nombre d'occurence des termes d'un fichier texte

vendredi 2 juillet 2010 à 12:37:29 | nombre d'occurence des termes d'un fichier texte

mervat

bonjour,
ce programme permet de déterminer le nombre d'occurence de tous les termes dans un texte, j'ai créé une liste contenant les termes du texte, et puis la fonction compare parcourt le texte en parallèle avec la liste pour compter le nombre d'occurence de chaque mot du texte.

Code C/C++ :
#include <iostream>
#include <fstream>
#include <string>
using std::ifstream;
using std::string;

struct Page
{
  string val;
  Page* suivant;
};


Page* creerliste()
{
  ifstream entree ("in.txt");
  string i;
  Page* premier;
  Page* precedent;
  Page* nouveau;

  premier = new Page;
  entree >> premier->val;
  precedent = premier;
  while (entree >> i)
  {
	nouveau = new Page;
	precedent->suivant = nouveau;
	precedent = nouveau;
	nouveau->val = i;
  }
  precedent->suivant = 0;

  return premier;
}

void compare(Page* debut)
{
  int i = 0;
  ifstream ifs("in.txt") ;
  string s;
  Page* head = debut;

  while (ifs >> s)
  {
     debut = head;
     while (debut != 0)
	{
	  if (s == debut->val)
	     i=i+1;
	  debut = debut->suivant;
	 }

     std::cout << "le nombre d'occurence du mot " << s << " est " << i << std::endl;
     i=0;
  }
}

int main()
{
  Page* premier = creerliste();
  compare(premier);
  system ("pause");
  return 0;
}

l'entrée est:
Code :
Cest vendredi le 2 juillet 2010
Vendredi 2 7 2010


le résultat de ce code est:
Code :
le nombre d'occurence du mot Cest est 1
le nombre d'occurence du mot vendredi est 1
le nombre d'occurence du mot le est 1
le nombre d'occurence du mot 2 est 2
le nombre d'occurence du mot juillet est 1
le nombre d'occurence du mot 2010 est 2
le nombre d'occurence du mot Vendredi est 1
le nombre d'occurence du mot 2 est 2
le nombre d'occurence du mot 7 est 1
le nombre d'occurence du mot 2010 est 2

j'ai alors un problème dans l'affichage comme par exemple le nombre d'occurence du mot 2 est 2 se répète, une redondance
pourrais je avoir vore aide pour résoudre ce problème.
et merci.
vendredi 2 juillet 2010 à 12:52:21 | Re : nombre d'occurence des termes d'un fichier texte

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Utilise une std::map !
Cette collection te permet d'associer deux type ensembles. Par exemple un std::string avec un entier.
C'est comme si on créait des colonnes, et que l'on associait un mot avec un entier.

Ex: map["pouet"] = 3;
Si on fait std::cout << map["pouet"];, on aura donc 3.
Si map["pouet"] n'existe pas, il est crée automatiquement.
Donc lorsque l'on fait ++map["pouet"], "pouet" sera crée et l'on aura 1 d'associé avec.

Juste en faisant:
while (ifs >> s)
++map[s];
Je peux associer tous les mots avec leur nombre d'occurence.

Ex:
Code C/C++ :
#include <iostream>
#include <fstream>
#include <map>

int main()
{
  std::ifstream ifs("in.txt") ;
  std::string s;
  std::map<std::string, int> map;

  while (ifs >> s)
    ++map[s];

  typedef std::map<std::string, int>::const_iterator iter;
  for (iter it = map.begin(); it != map.end(); ++it)
    std::cout << "le nombre d'occurence du mot " << it->first << " est " << it->second << std::endl;

  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio

[color=green]Merci d'utiliser [i]Réponse acceptée[
vendredi 2 juillet 2010 à 14:14:27 | Re : nombre d'occurence des termes d'un fichier texte

mervat

c'est vraiment extra-ordinaire ce map,je ne l'ai jamais utilisé,
je vous remercie infiniment, tout d'abord pour le code et surtout pour l'explication de ce code et de l'utilité du map.


Cette discussion est classée dans : nombre, page, code, mot, occurence


Répondre à ce message

Sujets en rapport avec ce message

programme c++ qui compte le nombre d'occurence des termes d'un fichier texte [ par mervat ] je veux savoir le nombre d'occurence de tous les termes du fichier "in"; j'ai écrit le programme ci-dessous: int main(int argc, char* argv[]) { ifs numéroter les phrases d'un fichier texte et les réécrire dans un autre fichier [ par mervat ] bonjour, les instructions ci dessous me permettent en principe de copier un fichier texte dans un autre fichier en numérotant ses phrases, [code=cpp] Vecteur de pointeur de char [ par noname001 ] Bonsoir à tous. J'ai un petit soucis avec un vecteur de pointeur de char. Voici premièrement sa déclaration [code=cpp] char *mots_cles[MAX_MOTS_CLES Script lire page web et sauver le code source de la page [ par prince_noir_ ] Bonjour, J'aimerais faire un script qui me permettrais d'ouvrir en séquence, "Ouverture, sauvegarde du source de la page et fermeture d'une page web, très grand nombres en c++ [ par pop70 ] Bonjour, j'essaie actuellement de faire un petit programme de cryptage basé sur le principe du RSA, seulement pour cela il faut manipuler des très gra Pointeurs et tableau de char ? [ par phyyl ] Bonjour ! J'ai un petit soucis ... voici mon code: [code=cpp] #include using namespace std; void modify(char* ptr[]); int main() { char mot[]= Question : Variables static/méthode static/initialisation [ par Inutqen ] Bonjour à tous, j'ai besoin d'un coup de main :) J'ai un petit soucis avec un code C++, je suppose que la réponse à ma question se trouve quelque par Problème de code en C [ par Guillaume170194 ] Bonjour à tous Je ne vois pas le problème que peut avoir le code. Je choisi le niveau mais après cela ne correspond pas. Merci de votre aide Voici l


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales