Recherche de la Xieme occurence d'un mot dans un std::string

Résolu
Rockanos Messages postés 20 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 21 janvier 2011 - 17 avril 2010 à 16:39
Rockanos Messages postés 20 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 21 janvier 2011 - 20 avril 2010 à 22:02
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

cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
18 avril 2010 à 22:59
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,
3
Rockanos Messages postés 20 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 21 janvier 2011
20 avril 2010 à 22:02
Merci beaucoup ! :)
0
Rejoignez-nous