段落を取り、各単語の最初の文字を表示する関数を作成しようとしていました。プログラムは最初の数回は正常に実行されますが、その後のインスタンスでは、関数の実行後に動作が停止します。コードは次のとおりです。
//program that returns the first letter of each word in a paragraph
#include <iostream>
#include <string>
using namespace std;
void firstLetter(string, ostream&);
int main()
{
string paragraph;
cout<<"Enter a paragraph."<<endl;
getline(cin, paragraph);
firstLetter(paragraph, cout);
return 0;
}
void firstLetter(string words, ostream& out)
{
for(int i= 0; i < words.length(); i++){
out<<words[i++]<<" ";
while(words[i] != ' '){
i++;
}
}
}
.exe ファイルを削除してプロジェクトを再構築しようとしましたが、数回実行すると再び機能しなくなります。なぜこれが起こっているのですか?