2016-08-18 2 views
0

cin >>「あなたはとても良いです。 < < COUT文字列の一部を別の文字列に置き換えます(最初の文字列がありません)

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string s; 
    cin >> s; 

while (getline(cin, s)) 
{ 
    while (s.find("bad")!= string::npos) 
     { 
      s.replace(s.find("bad"), 3, "good"); 
     } 
    cout << s << endl; 

} 
    return 0; 
} 

"非常に優れています。"

最初の単語 "You"はどこですか?どのように正しいコードを表示する必要がありますか?

答えて

2

cin >> s;ループが行の最初の単語を読み込み、それを入力ストリームから削除する前に、その後、getline(cin, s)は残りの行を読み取ります。だから、初めてのループでは、sはちょうどare very badです。 badgoodに置き換えた場合、結果はare very goodになります。

cin >> s;行に何らかの理由がないようですので、削除してください。

関連する問題