2017-11-25 125 views
-2

我正在嘗試做這個練習;如何讓我的循環搜索空白?

編寫一個程序,它使用一個字符數組和一個循環來一次讀取一個字 ,直到輸入完成字。然後該程序應該報告輸入的字數(不計算完成) 。樣品運行 看起來是這樣的:

輸入字詞(停止,鍵入完成這個詞):食蟻獸生日 分類垃圾箱羨慕欺騙幾何肯定 做你一共有7個 輸入的單詞。

您應該包含cstring頭文件並使用strcmp() 函數進行比較測試。

現在,我在谷歌搜索它,每個人都喜歡它;在每個單詞之後按回車鍵,當寫完「完成」後最終進入時,循環停止。

現在,我知道該怎麼做。

我想做什麼(以及我認爲運動實際需要的)是爲用戶輸入一個帶有多個單詞的單個字符串(例如:「鉛筆冬天長句當舊電影現在完成時不會說話發生「),然後程序應該將空格前面的每個單詞(」「字符)計爲一個不同的單詞,找出」完成「的位置,然後統計每個單詞。

+0

'std :: string :: find'可能會有所幫助。 –

回答

0

http://www.cplusplus.com/reference/string/string/getline/ 將會讀取一行,直到按下回車鍵。您可以在空格字符''(32 ascii)之間劃分一部分字符串。 計數的話,這將工作,其中輸入字符串:

getline(std::cin, input); 
int words = 0; 
for (int c = 0; c < input.size(); c++) { 
    while (input[c] != ' ' && c < input.size()) { 
     c++; 
    } 
    words++; 

} 

另一種方式來做到這一點是這樣的: http://www.cplusplus.com/reference/cstring/strcmp/

while(strcmp(tmp.c_str(),"done") != 0){ 
     std::cin>> tmp; 
     words++; 
    } 

CIN自然停止在每一空間記錄字符串