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
- Chaine tnt gratuite sur mobile - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- 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!!;)
@+