# C++ String mehrfach durchsuchen



## Raetsel (8. Juni 2005)

Hallo, ich hab ein Problem mit einem C++ String und zwar will ich diesen nach einem bestimmten Wort durchsuchen und dann soll zurückgegeben werden, wie oft das Wort in dem String vorhanden ist.
Beispiel:

```
string satz = " eins, zwei, eins, drei, eins, zwei, eins";
int anzahl =0;
 
do
{
[size=2]satz.find("eins");
anzahl++;
}
while(satz.find("eins") == string::npos);
cout << anzahl <<;
```
Da ist jetzt mein Problem, dass ich nicht weiß, wie ich dann weitersuchen soll, ich erhalte als anzahl nur 1 und nicht 4, wie es sein sollte. Wie kann ich dem find sagen, dass es dann hinter dem 1. gefundenen Wort weitersuchen soll? Kann mir jemand das zeigen oder erklären? Danke


----------



## FireFlow (8. Juni 2005)

```
#include <string>
#include <iostream>

using namespace std;

int main()
{
    string satz = " eins, zwei, eins, drei, eins, zwei, eins";
    string find = "eins";

    int anzahl = 0;

    string::size_type position = 0;
    while((position = satz.find(find, position )) != string::npos)
    {
        ++position;
        ++anzahl;
    }

    cout << anzahl;
    cin.get();
}
```


----------

