2016-03-14 40 views
-1

我的計劃的目的是讓來自用戶輸入一個字符串,刪除和計數所有的元音。此外,該程序將繼續運行,直到他們點擊「---」結束程序。但是,我卡住了,無法找到我的程序出了什麼問題。例如:如果用戶輸入:「你怎麼樣?」,輸出應該是:「HW RŸ?」。 對不起,我是一個菜鳥,這是我的第一個編程語言,我很缺乏經驗吧。C++,刪除和couting的所有元音在一個字符串

============================================== =======

#include<iostream> 
#include<string> 

using namespace std; 
int main() 
{ 
    cout << "Please enter a sentence" << endl; 

    string sentence; 

    getline(cin,sentence); 

    while (true) { 
     getline(cin, sentence); 

     if (sentence = "---") 
      break; 

     int j, a, e, i, o, u; 
     for (j = 0; j < sentence.length(); j++) 
     { 
      if (sentence[j] == "a" || sentence == "A") 
      { 
       a++; 
      } 
      else if (sentence[j] == "e" || sentence == "E") 
      { 
       e++; 
      } 
      else if (sentence[j] == "i" || sentence == "I") 
      { 
       i++; 
      } 
      else if (sentence[j] == "o" || sentence == "O") 
      { 
       o++; 
      } 
      else if (sentence[j] == "u" || sentence == "U") 
      { 
       u++; 
      } 
      cout << sentence << "number of " << "a :" << a << "e :" << e << "i :" << i << "o :" << o << "u :" << u; 
     } 
    } 
return 0; 
} 
+0

應該是'如果(全文[J] == 'A' ||句子[J] == 'A')' –

+0

我建議你打開所有的編譯器警告。如果您在此處詢問有關調試幫助,請逐字添加所有編譯器錯誤消息。 –

回答

2
if (sentence = "---") 
    break; 

這是一個賦值。它總是會發生的,而且總是會變得真實。因此你的循環什麼都不做。

的平等,比較操作是==,不=

另外,您還寫了sentence[j] == "e"而不是sentence[j] == 'e',並且您編寫了sentence == "A"而不是sentence[j] == 'A'