Compter les occurrences d'un caractère dans une chaîne

La recherche de la meilleure façon de le faire en VB6. En règle générale, je voudrais utiliser cette approche...

   ' count spaces
    For i = 1 To Len(text)
        If Mid$(text, i, 1) = " " Then count = count + 1 
    Next
  • Voulez-vous compter des espaces ou des caractères distincts?
  • quel est le problème avec cette approche?
  • Si vous êtes à la recherche pour compter les caractères ou des caractères spécifiques? Votre titre l'indique "unique", votre échantillon suggère "spécifique".
  • La seule chose que je voudrais ajouter, c'est de déplacer le Len(texte) à l'EXTÉRIEUR de la Pour les, de l'enregistrer dans une variable.
  • VB6 chaînes sont stockées en format BSTR, de sorte que la longueur de la fonction est en O(1), c'est donc qu'une petite optimisation. Le compilateur serait susceptible de l'obtenir.
  • Je veux compter un caractère particulier dans une chaîne de caractères, même si mon exemple est un espace.
  • Je le savais, mais vous ne pouvez pas optimiser beaucoup d'autres choses le code 🙂 à Moins que le comte ou le texte de la variante 🙂 🙂
  • vrai, mais c'est probablement plus rapide de comparer les valeurs ascii de chaînes littérales. De Plus, l'auteur du commentaire de changer la nature de la question... arg
  • Pour répondre à Beth question, récemment, je suis allé d'être membre d'une taille moyenne de l'équipe de développement d'être un lone-wolf responsable de garder un projet en cours. J'aimerais avoir des gens intelligents examen de ma solution à un problème. J'aime apprendre des autres. Stackoverflow est un très bon substitut!
  • VB évalue seulement la To expression une fois de toute façon. C'est un For boucle, pas un Do While boucle.
  • J'ai changé votre question titre, le titre et ce que vous sont actuellement demandant de ne pas correspondre.

InformationsquelleAutor Gary Kindel | 2011-03-15