ファイルを読み込んで単語を尋ねるプログラムを作成しようとしています。次に、ファイルで使用された時間を出力します。変更した文字列を関数から返すにはどうすればよいですか?
これは、読んでいるファイル内にあるものである:
このファイルには、多くの単語が含まれています。多くの、多くの言葉。 まあ、それは結局のところ多分ではないかもしれません。 それで、どれだけたくさんありますか?
単語出現:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
using namespace std;
string RemovePunct(string word) {
char exc = '!';
char comma = ',';
char period = '.';
char question = '?';
for (int i = 0; i < word.length(); i++) {
if (word[i] == exc) {
word.pop_back();
}
else if (word[i] == comma) {
word.pop_back();
}
else if (word[i] == period) {
word.pop_back();
}
else if (word[i] == question) {
word.pop_back();
}
}
return word;
}
string ToLowercase(string word) {
transform(word.begin(), word.end(), word.begin(), tolower);
return word;
}
int main() {
string wo;
cin >> wo;
transform(wo.begin(), wo.end(), wo.begin(), tolower);
ifstream in("words.txt");
int wordcount = 0;
string word;
while (in >> word) {
RemovePunct(word);
ToLowercase(word);
cout << word << endl; // used to check if 'word' has changed
if (word == wo) {
++wordcount;
}
}
cout << wordcount << endl;
// outputs 4
// should output 6
}
あなたはそれがファイル内のすべての「多くの」を考慮していない見ることができるように。私は句読点を取って文字を小文字にしようとしましたが、変更された単語は私の主な機能に戻っていません。だから私はどこに間違っているかもしれないかについての助けを探しています。
RemovePunct関数とToLowercase関数の戻り値を無視しています –
どのように変更できますか? –
'word = RemovePunct(word)' –