Recuper une chaine contenu dans un string

Résolu
Signaler
Messages postés
11
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
21 février 2006
-
Messages postés
11
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
21 février 2006
-
Bonjour a tous,
Le probleme est simple je pense (je programme en C++) :

j'ai cette ligne la :

node = insDoc(aux1, gLnk("GPFD", "000001.htm?refreshLink=1"))
qui est contenu dans un string

je veux récupérer la chaine 000001.htm, sachant que j ai d autres lignes a traiter et que je veux également récupérer le nom de fichier.htm qui est contenu dedans, la seule chose qui ne change jamais c'est que le nom est précédé de " et suivi de ?

une solution quelqu'un ?
merci,
A+.

5 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Pense à cliquer sur Réponse Accepter et a mettre ta réponse si possible, ca pourra en aider d'autres par la suite.

Shell
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
1
char *b, *c, *f; c b strstr( chaine, ".htm?" );
while ( *--c != '"' );
int i = (b - chaine) - (c - chaine) + 3;
f = (char*) malloc(i);
strncpy (f, c+1, i);
f[i] = 0;
free(f);
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Si tu te sert des strings, tu as a ta disposition les méthodes find(), substr(), et pos() qui te permettront de faire ce que tu souhaites.

Shell
Messages postés
11
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
21 février 2006

ouais j ai reussi avec substr(), c'est tres pratique !
merci,
Messages postés
11
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
21 février 2006

// on efface la derniere occurence de "
ligne.erase(ligne.length()-3);

//on cherche la derniere occurence de ", qui signifie le debut du nom du fichier
pos = ligne.find_last_of(""");

//on recupere le nom du fichier a ouvrir
fichierObjet = ligne.substr(pos+1,10);