[C] un Count sur une string

un Count sur une string [C] - C++ - Programmation

Marsh Posté le 08-04-2003 à 16:38:10    

Voila sujet un peu ambigue je l'avoue
 
 
Je cherche une méthode toute simple pour compter le nombre d'occurence d'un element.  
 
ex
 
MethodeCount (ElemATrouver StringAChercher)
{
 
// a compléter
 
return ( nombreDocurrence)
}
 
J'espere j'espere que quelqu un aura compris ma question.
Et vous l'avez devinez le C c pas mon truc .
Mais bon a priori ce n'est pas difficile.
 
Merci

Reply

Marsh Posté le 08-04-2003 à 16:38:10   

Reply

Marsh Posté le 08-04-2003 à 16:44:14    

tu recherche un caractère ou une sous-chaine.
 
car -> parcours à la main
sous-chaine -> appels (récursifs pour quoi pas) à strchr

Reply

Marsh Posté le 08-04-2003 à 16:47:18    

++Taz a écrit :

tu recherche un caractère ou une sous-chaine.
 
car -> parcours à la main
sous-chaine -> appels (récursifs pour quoi pas) à strchr


 
oui attend en fait le format que j'ai c'est :
 
String a parcourir : "A1 A2 A3 A1 A2"
String a chercher :"A1"
 
je veux que la méthode renvoie : 2
 
Dois je absolument passé par une reconnaisance de caractere ?
 
merci
 
EDIT : avec strchr je dois faire un truc recursif sur la chaine mais je dois couper cette chaine au fur et a mesure pour avoir la valeur !


Message édité par mauvais_karma le 08-04-2003 à 16:52:11
Reply

Marsh Posté le 08-04-2003 à 16:54:13    

ben il y aussi strtok

Reply

Marsh Posté le 08-04-2003 à 16:56:51    

c koi l'équivalent en C de "instr" (VB)... ? c ptet ca qu'il cherche.. non ?  :whistle:

Reply

Marsh Posté le 08-04-2003 à 17:01:15    

++Taz a écrit :

ben il y aussi strtok


 
STRTOK
 
oui c pas mal ca  :sol:  
 
Merci

Reply

Marsh Posté le 09-04-2003 à 11:06:42    

Mauvais_Karma a écrit :


 
STRTOK
 
oui c pas mal ca  :sol:  
 
Merci


 
/!\ Suis pas sûr qu'elle soit réentrante, fais gaffe !


Message édité par ToxicAvenger le 09-04-2003 à 11:06:56
Reply

Marsh Posté le 09-04-2003 à 12:29:08    

Code :
  1. int CDlgClasse1::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. }

Reply

Marsh Posté le 10-04-2003 à 16:35:04    

polo021 a écrit :

Code :
  1. int CDlgClasse1::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. }




 
C bien ca aussi ! je vais voir ce que je peux tirer de tout ca.
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed