Program zliczający wprowadzone słowa

0

Witam, mam taki problem. Mam napisać program zlicajacy wprowadzone słowa, który kończy działanie po wpisaniu Gotowe, nie zaliczając tego słowa.
. Wpisuje Gotowe i okJeśli wpiszę samo "Gotowe", działa poprawnie, jeśli wpiszę np. Papaja <Enter> Gotowe, też działa poprawnie.
Ale chodzi mi o to, żebym mógł wpisać ciąg znaków: np Papaja Marakuja Gotowe Pizza. Bez użycia enter i żeby zliczyło mi Papaje i Marakuje.

#include<iostream>
#include<cstring>

int main()
{
    using namespace std;
    char ch[ 100 ];
    char chend[] = "Gotowe";
    int count = 0;
   
    cout << "Podaj słowa (kiedy skonczysz, napisz gotowe)";
   
    cin.getline( ch, 100 );
   
    while( strcmp( ch, chend ) != 0 )
    {
        cin.getline( ch, 100 );
        ++count;
    }
   
    cout << "Podano " << count << " slow";
    cin.clear();
    cin.get();
    cin.get();
    return 0;
}
2
#include <iostream>
#include <string>
using namespace std;

int main()
  {
   string word;
   cout<<"Podaj słowa (kiedy skonczysz, napisz gotowe)"<<endl;
   unsigned count;
   for(count=0;(cin>>word)&&(word!="gotowe");++count) {}
   cout<<"Podano "<<count<<" slow";
   //while(cin.get()!='\n') {} cin.get(); // jeżeli potrzebujesz tego zatrzymania to zamień środowisko na jakieś z tego tysiąclecia.
   return 0;
  }
0

Gapa ze mnie moja wina. Zapomiałem dopisać, ze string umiem. Ale musze też zrobić z tablica char ;/ i w tym jest cały pies pogrzebany.

0
#include <iostream>
#include <cctype>
using namespace std;
 
int main()
  {
   static const char end[]="gotowe";
   const unsigned len=sizeof(end)-1;
   cout<<"Podaj słowa (kiedy skonczysz, napisz gotowe)"<<endl;
   unsigned count=0,cmp=0,inword=0;
   for(int ch;((ch=cin.get())!=EOF)&&(cmp<len);)
     {
      if(ch!=end[cmp++]) cmp=0;
      if(!isspace(ch)) inword=1;
      else if(inword) inword=!(++count);
     }
   cout<<"Podano "<<(count+((cmp<len)&&(inword)))<<" slow";
   //while(cin.get()!='\n') {} cin.get(); // jeżeli potrzebujesz tego zatrzymania to zamień środowisko na jakieś z tego tysiąclecia.
   return 0;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1