0
我試圖計算在鍵盤上輸入一個句子時的單詞數量,但重複的單詞只能計算一次。在這種情況下,句子必須以特定字符串結尾,我將使用「eof」。 例如,當我輸入:「這是一個單詞這個單詞」,結果應該是4個單詞。計算鍵盤的單詞。不計算重複
我的代碼是:
#include <iostream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string input;
vector<string> sentence;
int n=0;
while (cin >> input && input!="eof")
{int i=0;
while (input!= sentence[i] && i<sentence.size())
{
i++;
}
if (i==sentence.size())
sentence.push_back(input);
}
cout << "\nNumero de palavras: " << sentence.size();
return 0;
}
的代碼編譯沒有任何錯誤,但是當我運行它,它表示:「表達:向量下標越界有關你的程序是如何導致斷言失敗看資料斷言的Visual C++文檔。「
我的代碼有什麼問題?
是的,這是問題!謝謝。但現在當我輸入一個句子時,例如:「這是一個單詞這個單詞」,它包含5個單詞。它是否將eof算作一個單詞?但是,如果我將條件逆轉(cin >> input && input!=「eof」),它將只計算4個單詞。這是爲什麼?如果條件輸入!=「eof」在cin >>輸入之前,它不應該讀取eof。我對嗎? – user2880113