Recuperer une chaine entre 2 autres chaines
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour , je voudrai comme le titre l'indique une fonction en C/C++ qui va récupérer une chaine compris entre deux autres chaines, exemple :
J'ai chercher sur le web mais j'ai trouvé cette fonction qu'en PHP et en C# mais je la veux en C/C++, j'attends vos réponses et Merci d'avance ;)
int main()
{
char chaine[] = "<strong>Henry pool is heaer </strong>";
char debut[] = "<strong>", fin[] = "</strong>", resultat[50] = "";
// Avoir se qu'il y à entre la variable "debut" et "fin" et le mettre dans "resultat"
resultat = extract(chaine, debut, fin);
printf("%s\n", resultat);
return 0;
}
J'ai chercher sur le web mais j'ai trouvé cette fonction qu'en PHP et en C# mais je la veux en C/C++, j'attends vos réponses et Merci d'avance ;)
A voir également:
- Recuperer une chaine entre 2 autres chaines
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Chaine tnt gratuite sur mobile - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment recuperer une video sur youtube - Guide
2 réponses
Salut,
tu peux essayer un truc comme cela:
si tu veux une fonction:
Il n'y a pas de gestion de débordement donc c'est à toi de modifier le code pour cela!!;)
@+
tu peux essayer un truc comme cela:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv) {
char* chaine = "<strong>Henry pool is heaer </strong>";
char* debut = "<strong>";
char* fin = "</strong>";
char*res;
unsigned char cpt;
while (strncmp(chaine++,debut,strlen(debut)));
chaine+=strlen(debut)-1;
res=chaine;
while (strncmp(chaine++,fin,strlen(fin)));
cpt=chaine-res-1;
printf("%.*s\n",cpt,res);
return (EXIT_SUCCESS);
}
si tu veux une fonction:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* extract(char*data,char* deb,char* end,unsigned char* cmpt);
int main(int argc, char** argv) {
char* chaine = "<strong>Henry pool is heaer </strong>";
char* debut = "<strong>";
char* fin = "</strong>";
unsigned char cpt;
chaine=extract(chaine,debut,fin,&cpt);
printf("%.*s\n",cpt,chaine);
return (EXIT_SUCCESS);
}
char* extract(char*data,char* deb,char* end,unsigned char* cmpt)
{
char*res;
while (strncmp(data++,deb,strlen(deb)));
data+=strlen(deb)-1;
res=data;
while (strncmp(data++,end,strlen(end)));
*cmpt=data-res-1;
return res;
}
Il n'y a pas de gestion de débordement donc c'est à toi de modifier le code pour cela!!;)
@+