Probleme chaine de caractere

romainbisson Messages postés 88 Date d'inscription jeudi 25 octobre 2007 Statut Membre Dernière intervention 9 septembre 2014 - 1 avril 2008 à 08:40
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 - 1 avril 2008 à 13:20
Bonjour,

j'ai cette chaine de caractere dans un texte :

2008-03-18 01:46:50 Local0.Debug 10.230.10.25 enterprise=1.3.6.1.4.1.232 enterprise_mib_name=compaq uptime=49554392 agent_ip=10.230.10.25 generic_num=6 specific_num=10005 version=Ver1 community=public var01_oid=1.3.6.1.2.1.1.5.0 var01_value=MILOUAN var01_mib_name=sysName

je voudrais qui me retourne la valeur de var01_value dans une variable,

nom=MILOUAN

char *str2 = "value=", *ptr;
   
    *ptr = strstr(texte, str2);
    printf("%s\n", ptr);

1 réponse

cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
1 avril 2008 à 13:20
Bonjour,
Voilà une possibilité détaillée :

#include <stdio.h>
void main()
{
   char* texte = "2008-03-18 01:46:50 Local0.Debug 10.230.10.25 enterprise=1.3.6.1.4.1.232 enterprise_mib_name=compaq uptime=49554392 agent_ip=10.230.10.25 generic_num=6 specific_num=10005 version=Ver1 community=public var01_oid=1.3.6.1.2.1.1.5.0 var01_value=MILOUAN var01_mib_name=sysName";



   const char* cle1 = " var01_value=";
   const char* cle2 = " var01_mib_name=";
  
   // --- Pointer la clé recherchée
   char* pCle1 = strstr(texte,cle1);
   if (pCle1)
   {
      // --- Copier à partir du contenu de la clé
      char value[100];
      strcpy(value,pCle1 + strlen(cle1));




      // --- Pointer la clé suivante
      char* pCle2 = strstr(value,cle2);




      // --- Placer le terminateur devant la clé suivante
      if (pCle2) value[pCle2 - value] = 0;




      // --- Visu de la valeur
      printf("<%s>\n",value);
   }
}


Ce qui donne la valeur seule :

<MILOUAN>

On peut améliorer le principe en faisant de l'allocation dynamique de mémoire par exemple.

Jean-François
0
Rejoignez-nous