Recherche de chaîne de caractères en C

Fermé
bege Messages postés 2 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 10 mars 2006 - 9 mars 2006 à 10:36
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 13 mars 2006 à 02:35
Bonjour à tous!
Je désire écrire un programme en C qui me permet de:
-> lire la source d'une page html, d'y chercher toutes les chaînes de caractères suivantes:"<a href=", "<img src="
-> modifier ce qu'il y a à la suite de celles-ci
-> générer la nouvelle page html

Je suis novice en programmation, c'est pourquoi je vous demande d'y ajouter des commentaires.
Merci

7 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
9 mars 2006 à 12:32
Salut.
Ta question n'es pas assez precise pour qu'on puisse y repondre pertinemant.
Ta page HTML, ellle est locale ou distante ?
pour faire les recherche, moi j'utiliserai la STL string qui permet de faire des recherches dans un texte, mais c'est en C++, peut être que strinh.h te permet de faire pareil en C...
si tu as des questions plus precise sur comment faire, j'y repondrai avec plaisir.
0
bege Messages postés 2 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 10 mars 2006
10 mars 2006 à 13:28
bonjour,
ok, la page que je désire lire est locale. Je pense que tu voulais dire <string.h> dans ton message.
merci!
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
10 mars 2006 à 16:34
Salut.
Donc, deja la page en local, ça simplifie grandement le problème.
En effet, c'est bien <string.h> dont je parlais, mais sans garantie en C.
dans string, tu as find(const char*), erase(int,int), insert(i,const char*)
http://www.cppreference.com/cppstring/index.html
pour plus d'info sur les strings.
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
10 mars 2006 à 20:29
Moi j'utiliserai plutôt la lib pcre pour rechercher une expression régulière correspondant au motif de chaîne que tu recherches.

Maintenant pour être tout à fait franche, il y a des langages plus adaptés que le C ou le C++ pour faire ce genre de choses, par exemple le python ou le perl. Et quand je dis plus simple, c'est vraiment beaucoup plus simple ;)

Mais quoiqu'il en soit tu devrais déjà jeter un oeil aux expressions régulière c'est à mon avis plus pratique que d'utiliser string.h...

Bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
11 mars 2006 à 13:15
Salut à tous,

et si le résultat compte et pas la méthode moi je choisirais Perl avec ses regex.

lami20j

P.S. donne ta page html ( par http://cjoint.com/) et ce que tu veux modifier et je vais écrire un script.
0
bennaniidriss Messages postés 20 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 23 mars 2006
12 mars 2006 à 22:12
bonsoir
moi ce que je vous propose de faire c'est d'utiliser les fichier en c tout dabord tu ouvrira le fichier qui contiens la page html en suite tu devrais utiliser la fonction predefini en c "strcmp" qui retourn 0 si elle trouve la chaine que tu recherche cette fonction est predefini dans la bibliotheque <string.h>
bo courage!
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
13 mars 2006 à 02:35
bennaniidriss, le C ne priori a priori pas d'utiliser des expressions régulières, comme je l'ai dit plus haut, et qui sont nettement plus pratique qu'un strcmp. On peut s'en sortir avec strcmp mais c'est vraiment pas pratique.

Donc si le programme doit être fait en C/C++, cf lib pcre. Sinon, mieux vaut utiliser un langage de script comme le python ou le perl qui permettent de faire très simplement ce job. A mon avis en python c'est même plus facile qu'en perl.

Bonne chance
0