nombre de sous chaines dans une chaine

nombre de sous chaines dans une chaine - C++ - Programmation

Marsh Posté le 14-03-2003 à 09:46:35    

Est ce qu'il existe une fonction qui retourne le nombre de sous-chaines identiques qu'il y a dans une chaine de caracteres?
genre : "truc bidule chose truc machin truc"
et si je cherche le nombre de "truc" ca me retournerait 3 ?

Reply

Marsh Posté le 14-03-2003 à 09:46:35   

Reply

Marsh Posté le 14-03-2003 à 10:01:14    

perso j'en connais pas mais est-ce qu'un simple :  
 

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


 
ne suffirait pas?

Reply

Marsh Posté le 14-03-2003 à 10:07:19    

oui on peut remplacer par ca.
Mais c'est quand meme bizarre si ce genre de methode pour une String n'existe pas. :heink:

Reply

Marsh Posté le 14-03-2003 à 11:07:33    

tu précises pas si t'es en C ou C++, alors je te propose une version C++:

Code :
  1. std::string::size_type getNbSubString (const std::string & str, const std::string & sub)
  2. {
  3.    std::string::size_type nb = 0;
  4.    std::string::size_type pos = str.find (sub);
  5.    while (pos != std::string::npos)
  6.    {
  7.       ++nb;
  8.       pos = str.find (sub, pos + 1);
  9.    }
  10.    return nb;
  11. }


Message édité par gloop le 14-03-2003 à 11:07:59
Reply

Marsh Posté le 14-03-2003 à 12:14:46    

juste, je suis en C.
Mais cette version, j'en suis sur, pourra certainement servir a quelqu'un quand meme. Merci.

Reply

Sujets relatifs:

Leave a Replay

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