toupper
を、それぞれchar
の.
のstring
の後に使用したいと思います。 私はこのコードを試しましたが、私が+
演算子を使用するとプログラムを起動すると黒い画面が表示されます。toantを行う文字列:: size_type + intを取得する
string fulltext = "my name is John. i have a girlfriend. her name is Anna";
string::size_type idx = 0;
while ((idx = fulltext.find(".")) != string::npos)
{
if (idx != string::npos)
{
fulltext[idx + 2] = toupper(fulltext[idx + 2]);
}
}
cout << fulltext << endl;
"それは働いていない" を定義します。それに加えて、デバッガを使ってみましたか? –
おそらく、idxがインクリメントされていないため、 "i have"の文字 "i"をupperに設定している無限ループを取得します。 idx = fulltext.find( "。"、idx + 1) – Nonanon
また、コード内のいくつかの他の問題:1) 'if'節は同じ条件が' while '、あなたがループしている場合、それはすでに'真です。 2) 'idx'があなたの文字列中の有効なインデックスを表している場合、' idx + 2'が有効なインデックスを表すことは自動的には意味しません。 –