Einzelnen Beitrag anzeigen

boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#7

Re: [C++] String vergleichen

  Alt 21. Sep 2007, 13:14
Also strstr() könntest du etwa so implementieren:
Code:
char * strstr(char * text, const char * subtext)
{
   unsigned int i = 0, j = 0;
   bool found = false;
   while(text[i])
   {
      if(text[i] == subtext[0])
      {
         while(subtext[j])
         {
            found = true;
            if(subtext[j] != text[i+j])
            {
               found = false;
               break;
            }
            j++;
         }
         if(found)
            return text+i;
      }
      i++;
   }
   return NULL;
}
Wobei ich mir sicher bin, dass ich in meiner grenzenlosen Inkompetenz nicht den besten Weg gewählt habe.

Die Funktion kann man nun mit ein wenig Korrektur einfach in dein Ausgangsproblem überführen.
Code:
int anzahl(const char * subtext, const char * text)
{
   unsigned int i = 0, j = 0, zaehler = 0;
   bool found = false;
   while(text[i])
   {
      if(text[i] == subtext[0])
      {
         while(subtext[j])
         {
            found = true;
            if(subtext[j] != text[i+j])
            {
               found = false;
               break;
            }
            j++;
         }
         if(found)
            zaehler++;
      }
      i++;
   }
   return zaehler;
}
Wobei hier analog zu oben gilt, es gibt unter Umständen bessere Lösungen.

Gruß!
Stefan
  Mit Zitat antworten Zitat