Recherche de la Xieme occurence d'un mot dans un std::string [Résolu]

Signaler
Messages postés
20
Date d'inscription
mardi 14 octobre 2008
Statut
Membre
Dernière intervention
21 janvier 2011
-
Messages postés
20
Date d'inscription
mardi 14 octobre 2008
Statut
Membre
Dernière intervention
21 janvier 2011
-
Bonjour,

Je recherche un moyen de trouver des '\t' dans une ligne d'un fichier texte en vue de traiter l'information qui suit ces '\t'.

exemple d'une ligne:

Affenpinscher Groupe 2 - Section 1 Allemagne Chien de compagnie


Cela doit donner :

Chien :
Nom : Affenpinscher
Groupe : Groupe 2 - Section 1
Origine : Allemagne
Utilisation : Chien de compagnie
afin de pouvoir remplir un objet "Chien"




J'ai besoin de savoir assez rapidement s'il vous plais...
Merci d'avance !

2 réponses

Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

Salut.

strchr et strdup sont tes amies.

Par exemple (un peu testé):
struct info {
  char * nom;
  char * origine;
  char * usage;
};

void
parse_info(char * line, struct info * inf)
{
  char * tab = strchr(line, '\t');
  if (tab == NULL)
    goto err_nom;
  *tab = 0;
  inf->nom = strdup(line);
  line = tab + 1;
  tab = strchr(line, '\t');
  if (tab == NULL)
    goto err_origine;
  *tab = 0;
  inf->origine = strdup(line);
  line = tab + 1;
  inf->usage = strdup(line);
  return;
err_nom:
  inf->nom = strdup("");
err_origine:
  inf->origine = strdup("");
  inf->usage = strdup("");
}


Bonne prog,
Messages postés
20
Date d'inscription
mardi 14 octobre 2008
Statut
Membre
Dernière intervention
21 janvier 2011

Merci beaucoup ! :)