begin process at 2012 05 28 22:09:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Fichier & Disque

 > 

comteur de mot repeter


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

comteur de mot repeter

dimanche 17 décembre 2006 à 16:11:35 | comteur de mot repeter

GaGa

Salut,

dsl de vous deranger pour si peut ;-) mais suite a un pari stupide je suis a la recherche d'un petit prog qui permete de compter combien de fois chaque mot aparait dans un document texte.
Je l'acorde ce n'est pas trop utile mais cela me depanerai bien.

Enfin j'ai cherché un peut partout et rien trouver si vous avec un lient qui pourais maider merci d'avance !

A+

GaGa
dimanche 17 décembre 2006 à 18:28:52 | Re : comteur de mot repeter

didoux95

slt
je peut te donner l'algorithme de ton code:

tu creer un tableau de type string et un de type int (le string = le mot ; le int = le nombre de fois qu'il est present)
tu ouvre ton fichier
tu le "scan"
a chaque fois que tu rencontre un mot 
   tu test si il est deja present dans le tableau defini plus haut ,si oui
      tu increment de 1 son compteur
   si il n'est pas repertorier
      tu l'ajoute et tu increment de 1 son compeur
fin

j'espere que tu a compris cet algo
+

dimanche 17 décembre 2006 à 19:57:45 | Re : comteur de mot repeter

SAKingdom

Membre Club
Un tableau?
Il vaudrait mieu faire une liste chainé sinon, on risque de ne pas avoir asser de mémoire pour le nombre de mot:

struct WORDN
{
    struct WORDN *next; // Prochain mot de la liste
    char name[32]; // La longeur maximal d'un mot est donc de 31 caractères
    DWORD i; // Le nombre de mot présent
};

C++ (@++)

dimanche 17 décembre 2006 à 20:03:16 | Re : comteur de mot repeter

rrk275

Oula les algos tout pas beaux et tout long ^^
(fin .. long si tu tries pas ton tableau ..)
moi je ferais un dictionnaire  ...

Louis
dimanche 17 décembre 2006 à 20:37:19 | Re : comteur de mot repeter

rrk275

voila un ptit exemple de code ... avec dictionnaire

#include <iostream>

class n_dico
{
    public:
    char lettre;
    int nb_occurence;
    n_dico *  suiv[256];
    n_dico(char l)
    {
        lettre = l;
        nb_occurence = 0;
        for(int i=0;i<256;i++)
            suiv[i] = NULL;
    }
    void inc()
    {
        nb_occurence++;
    }
}base(' ');

char * ajoute(const char *mot)
{
    char *let = (char*)mot;
    n_dico * cur = &base;
    do
    {
        char c = *let;
        if(c<='Z'&&c>='A')
            c = c - ('A' + 'a');
        if(cur->suiv[*let]==NULL)
            cur->suiv[*let] = new n_dico(*let);
        cur = cur->suiv[*let];
        let++;
    }
    while((*let<='z'&&*let>='a')||(*let<='Z'&&*let>='A'));
    cur->inc();
    return let;
}

int nb_occ(char *mot,n_dico *cur)
{
    if(cur->suiv[mot[0]])
        return nb_occ(&mot[1],cur->suiv[mot[0]]);
    return cur->nb_occurence;
}

void parse_texte(char *txt)
{
    do
    {
        if((*txt<='z'&&*txt>='a')||(*txt<='Z'&&*txt>='A'))
            txt = ajoute(txt);
        txt++;
    }
    while(*(txt-1)!='\0');
}

void affiche(n_dico *cur,char base[],int id)
{
    base[id] = cur->lettre;
    base[id+1] = '\0';
    if(cur->nb_occurence)
        printf("%s %d\r\n",base,cur->nb_occurence);
    for(int i=0;i<256;i++)
        if(cur->suiv[i])
            affiche(cur->suiv[i],base,id+1);
}

int main()
{
    parse_texte("aimer ce n'est pas se regarder l'un l'autre, c'est regarder ensemble, dans la même direction!");
    char mess[200];
    affiche(&base,mess,0);
    return 0;
}


Louis
dimanche 17 décembre 2006 à 20:58:17 | Re : comteur de mot repeter

vecchio56

Administrateur CodeS-SourceS
Plus simple à mon avis: une map<string, int>

map<string, int> m;
while(pas fini) {
  mot = lireMot();
  m[mot]++;
}
 

_____________________________________
Un éditeur de ressources gratuit pour Windows

dimanche 17 décembre 2006 à 21:27:33 | Re : comteur de mot repeter

rrk275

.. je dois trop aimer l'algo pour aprecier mais c'est bref ^^

pourquoi faire simple quand on peut faire compliquer?

Louis ;..

lundi 18 décembre 2006 à 01:18:48 | Re : comteur de mot repeter

GaGa

Whaw merci a tous pour les reponse rapide ! Pour lalgo c'est sympa mais javais dejas une ou deux ptite idées mon probleme c'est que je n'ai jamais utiliser le C pour traiter un fichier texte (ou autre dailleur) mais le bout de code a l'air bien sympa je my penche un peut et je vous tiend au courant

++

GaGa


Cette discussion est classée dans : mot, repeter, comteur


Répondre à ce message

Sujets en rapport avec ce message

crypter un mot de passe et créer un répertoire [ par Vinsou ] salut,je cherchais une focntion qui permetrai de crypter un mot de passe sous linux pour pouvoir l'ajouter dans /etc/passw (dans un script bien sûr).O Palindrome et espaces [ par TheRecliner ] Bonjour,je dois faire petit programme qui détécte si un phrase est un plaindrome ou non....j'ai bien résussi à faire cette détection mais uniquement p CreateFile [ par Toobad ] J'ai un prob avec CreateFile sous VC++6Au dernier argument il arrete pas de boguer sur une histoire de conversion VOID* en INT.J'ai essayer un tas de comment protéger l'ouverture d'un fichier ? [ par f1cobra ] Bonjour, je voudrais protéger l'ouverture d'un fichier excell par un mot de passe, de manière a ce que seules les personnes ayant le mot de passe puis Rechercher une chaîne de caractère dans un fichier et afficher la ligne !! [ par UncleShu ] Exemple : Mot à rechercher :-> friend----fichier où il faut rechercher le mot-----enfant childenfants childrenami friendwhen offset ds un CFile [ par idiotech ] g un fichier de type CFile ki a un mot a chaque ligne et en fait je voudrais lire un mot d'une lignecomment je fais pour lire avec un offset au debut * Mot de passe [ par shenron ] Slt,vs savez comment on fait pour lorsqu'un user saisit une chaine de caractère, ce k'il tape se met en * comme si c t un mot de passe? Probleme typedef struct [ par shenron ] #include #include #include /*Definition de la structure*/typedef struct{ char login[11]; char mdp[11];}strlogin;/*Declaration de fonctions*/void ajo vérification du mot de passe [ par biscot19 ] Bonjour,Je cherche comment vérifier un mot de passe NT en C++.J'ai vu que la fonction NetUserChangePassword permettait de le faire mais comme son nom SVP URGENT choisir le mot le plus proche dans une liste [ par Ricpperso ] Bonjour,je suis en train de faire un correcteur orthographique, et je voudrais savoir commen t on fais pour chercher les mots les plus proches dans un


Nos sponsors


Sondage...

Comparez les prix

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 : 0,889 sec (3)

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