Analyseur de texte

Contenu du snippet

Ceci est un exercice de l'iut informatique de toulouse à compléter

Source / Exemple :


#include "chaine.h"
#include "entreeSortie.h"
#include "chaine.cpp"
#include "entreeSortie.cpp"

//---------------------------------------------//
// DECLARATION DES CONSTANTES                  //
//---------------------------------------------//
const int TAILLE_MAX = 255 ;

//---------------------------------------------//
// DEFINITION DES TYPES                        //
//---------------------------------------------//
typedef Chaine TabChaine [TAILLE_MAX] ;
typedef char TabChar [TAILLE_MAX] ;

// definition d une structure resultat pour comptage de chars
struct nbchars
{
       int nbutil ;  // nombre de lettres
       int nbponct ; // nombre de ponctuation
       int nbechap ;  // nombre de caractere d echappement
       int nbcesure ; // nombre de \n
       int nbespace ; // nombre d espcace ' '
} ;

//---------------------------------------------//
// PROTOTYPE DES SOUS-PROGRAMMES               //
//---------------------------------------------//
// Ecriture d un tableau de chaine
void afficherTexte (const TabChaine texte ) ;

// Compte le nombre de chars utiles, de ponctuation,
// d echappement, de cesure et d espace du texte
nbchars compteChar (const TabChaine texte ) ;

// Compte le nombre de chars Total du Texte
int compteCharTotal ( const TabChaine texte ) ;

// Compte la longueur logique d un tableau de chaine de caracteres
// Le tableau se termine logiquement lorque l on rencontre la chaine
// "EOT" pour End Of Table
int longueur (const TabChaine tab ) ;

// Renvoie le nombre de mots du texte et liste tous les mots
// du texte
int analyseur (const TabChaine texte ) ;

//---------------------------------------------//
// Programme principal                         //
//---------------------------------------------//
int main()
{
      // Tableau contenant le texte a analyser
      TabChaine  texte = { "\t Le jeune Takezo et son ami d'enfance, Matachi, \n",
      "rechappent d'une miraculeuse \n","et terrible catastrophe.\n","EOT" };
      // Tableau contenant la liste des mots tabous
      // a ne pas prendre en compte lors de l analyse du texte
      TabChaine tabou = {"Le","qui","plu","tard","EOT"} ;

      // resultat des differents comptages
      nbchars res ;
      // Compteur des mots du texte
      int nbmots ;

      afficherTexte (texte) ;
      res = compteChar (texte) ;

      afficherNL (uneChaine("")) ;
      afficher (uneChaine("Nb caracteres utiles .... : "));
      afficherNL (res.nbutil);
      afficher (uneChaine("Nb caracteres ponctuation .... : "));
      afficherNL (res.nbponct);
      afficher (uneChaine("Nb caracteres echappement .... : "));
      afficherNL (res.nbechap);
      afficher (uneChaine("Nb caracteres cesure .... : "));
      afficherNL (res.nbcesure);
      afficher (uneChaine("Nb caracteres espacement .... : "));
      afficherNL (res.nbespace);
      afficher (uneChaine("Nb caracteres total .... : "));
      afficherNL (compteCharTotal(texte)) ;
      afficher (uneChaine("longueur liste tabou .... : "));
      afficherNL(longueur(tabou));
      afficher (uneChaine("Liste des mots du texte : "));
      nbmots = analyseur (texte) ;
      afficher (uneChaine("Nb de mots du texte : "));
      afficherNL (nbmots);

      saisir () ;
}

//-------------------------------------------//
// CORPS DES SOUS PROGRAMMES                 //
//-------------------------------------------//
void afficherTexte (const TabChaine texte )
{
     for ( int j = 0 ; inf(texte[j],uneChaine("EOT")) ; j++ )
     {
         for (int i = 0 ; i < longueur (texte[i]) ; i++ )
         {
             if (egal(texte[i],uneChaine("EOT")))
             {   afficherNL (uneChaine (" ")) ; }
             else
             {   afficher (texte[i]) ;  }
         }

     }
}

int compteCharTotal ( const TabChaine texte ) 
{
     int CharTotal = 0 ;
     for (int c = 0 ; diff(texte[c],uneChaine("EOT")) ; c++ )
      { CharTotal = longueur (texte[c]) + CharTotal ; }

    return (CharTotal) ;

}

nbchars compteChar (const TabChaine texte ) 
{
        nbchars ici  ;
        for ( int j = 0 ; inf(texte[j],uneChaine("EOT")) ; j++ )
        {
            for (int i = 0 ; i < longueur (texte[i]) ; i++ )
            {
                
            }

         };
         return (ici) ;
}

int longueur (const TabChaine tab )
{
     int longs = 0 ;
     for ( int j = 0 ; supEgal(tab[j],uneChaine("EOT")) ; j++ )
     {
         longs = longueur(tab[j]) + longs ;

     };
     return (longs) ;
}

int analyseur (const TabChaine texte )
{
    // dans un mot
    const int DEDANS = 1 ;
    // a l exterieur d un mot
    const int DEHORS = 0 ;

    int nbmots = 0 ;
    int etat = DEHORS ;

    // a suivre ......

    return (nbmots) ;
}

Conclusion :


Il faut completer les deux corps des fonctions compteChar et analyseur .

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.