Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
945 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Recherche de chaine de caracteres...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recherche de chaine de caracteres...

n°326039
tertulia
Posté le 07-03-2003 à 15:02:07  profilanswer
 

comment identifier des chaines de caracteres dans une chaine de carateres... je m'explique:
j'ai la chaine suivante contenue ds la variable "line"
 
ref#pcm_path#speaker#gender#reference
 
et je voudrai recuperer les valeurs qui sont entre les #
pour le moment je fait
 
mysscanf(line,"ref#%s#%s#%s#%s" ),Pcm_path,Speaker,Gender,Reference);
 
mais avec cette commande je ne recuepere que Pcm_path avec la valeur pcm_path#speaker#gender#reference.
 
comment separer le reste???
merci :fou: :fou:

mood
Publicité
Posté le 07-03-2003 à 15:02:07  profilanswer
 

n°326050
Taz
bisounours-codeur
Posté le 07-03-2003 à 15:11:49  profilanswer
 

essaye "%s[^#]#"
fais une recherche sur sscanf pour plus d'exemples

n°326081
tertulia
Posté le 07-03-2003 à 15:33:13  profilanswer
 

en fait le sscanf fonctionne nickel si on met des espaces.
mais sans espace y a pas moyen...
 
au fait j'avais oublier line est unsigned short [200];
comme les autre valeurs a chercher..

n°329399
polo021
Posté le 11-03-2003 à 12:16:46  profilanswer
 

et pq ne pas lire les caracteres de line un par un jusqu'a trouver '#' et les mettre en meme temps ds un tableau de char?

n°333620
tertulia
Posté le 14-03-2003 à 16:03:07  profilanswer
 

c une solution mais les boucles je trouve ca pas top.. mais chacun son avis (rq si j'avais pas trouvé j'aurais fait ca)
 
bon pour ceux que ca interresse j'ai trouvé une autre solution.
j'utilise :
 
ptr=line;
ptr1=mystrstr(ptr, LHS_T("#" ));   /*recherche du caractere*/
*ptr1='\0';                       /*on met \0 a la place */
mystrcpy(Res,ptr);        /*on copie le resultat ds la variable*/
ptr1++;                   /* on sepl ace au caractere suivant*/
ptr=ptr1;                  /* pour continuer line*/
 
voila voila
 
merci bien

n°333626
polo021
Posté le 14-03-2003 à 16:07:26  profilanswer
 

je viens de trouver un truc qui pourra peut etre t'interesser.
strtok
va voir dans l'MSDN c'est bien explique.
dsl de pas avoir pu te repondre plus tot.

n°333627
polo021
Posté le 14-03-2003 à 16:09:29  profilanswer
 

et pour savoir combien il y en a, tu peux utiliser cette fonction qui m'a ete donnee par un forumeur.
 

Code :
  1. int CDlgSALD::StrCnt(char *str_src, char * str_pattern)
  2. {
  3.     char  *pos1, *pos2;
  4.     int   d_nb_patterns;
  5.      d_nb_patterns = 0;
  6.      pos1 = str_src;
  7.      while ((pos2 = strstr(pos1, str_pattern)) != NULL)
  8.      {
  9.   d_nb_patterns++;
  10.          pos1 = pos2 + strlen(str_pattern) + 1;
  11.      } 
  12.      return (d_nb_patterns);
  13. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Recherche de chaine de caracteres...

 

Sujets relatifs
moteur de recherche intranetFaire une recherche sur un champ avec une certaine tolérance
[PHP] Supprimer des espaces en fin de chaine de caracteres ?Convertir chaîne de caractères en entier
[master des CSS] recherché urgent :)[PHP] Séparer une chaîne de caractères tous les X caractères ?!
Recherche d'un fonction semblable à eregi_replace() 
Plus de sujets relatifs à : Recherche de chaine de caracteres...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR