substrings zählen



  • hallo, ich wollte eine funktion schreiben, die mir die anzahl der substrings eines strings zurückgibt. meine funktion ist aber viel zu langsam 😞
    kann vielleicht jemand drüber gucken und mir tipps geben, oder vielleicht ist sogar mein ansatz falsch? gibts andere möglichkeiten?

    der code sucht mit AnsiPos() die linkeste stelle und schneidet von da an plus die länge des substrings ab, usw...

    hier der code:

    int CntWrds(AnsiString asText, AnsiString asSubString)
    {
      int iGes = 0;
    
      while(1)
      {
        // linkeste position von asSubString
        int x = asText.AnsiPos(asSubString);
    
        if(x > 0)
        {
          // kürze asText
          asText= asText.SubString(x + asSubString.Length(), asText.Length());
          iGes++;
        }
        else
          break;
      }
    
      return iGes;
    }
    


  • ich hab grad ne funktion gefunden, muss mal testen 😉

    int Substr_count (char *haystack, char *needle)
    {
        int  counter = 0;
        char *loc    = NULL;
    
        /* Sanity checks */
        if ((haystack == NULL) || (needle == NULL)) {
            return 0;
        }
    
        while ((loc = strstr(haystack, needle)) != NULL) {
            counter++;
            haystack = loc + strlen(needle);
        }    
    
        return counter;
    }
    


  • Das wurde doch vor ein paar Tagen schonmal gefragt 🙄
    Gugst Du


Anmelden zum Antworten