-1

一意の単語の数をカウントする必要がありますが、以下のコードでは正しくカウントされていないようです。それを機能させるために他に何ができるかわからないので、何か提案をいただければ幸いです。

#include <iostream>
#include <string>
#include <set>
using std::string;
using std::set;


unsigned long countUWords(const string& s)
{
   set<string> uw;
   string word = "";
   for(size_t i = 0; i < s.size(); i++){
       bool words = (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z');
           if(words){
               word += s[i];
           }
           else if(!words && word != ""){
               uw.insert(word);
               word = "";
           }
   }
   if (word != "")
       uw.insert(word);
   return uw.size();
}

int main ()
{
    string s;
    unsigned long UWords = 0;
    while(getline(cin, s)){
        UWords += countUWords(s);
    }
    cout << UWords << endl;
    return 0;
}
4

1 に答える 1