文字列に重複した文字を表示するためにC++でコードを書きましたが、文字が3回以上繰り返されると、繰り返し文字が複数回出力されます。文字列に重複文字を表示する
たとえば、文字列がaaaddbss
の場合は、ads
を出力するだけで、代わりにaaads
が出力されます。
私は間違っていますか?
cout << " Please enter a string" << endl;
cin.getline(input, 100); // example input (ahmad wahidy) the output reads a a h a d instead of a h d
for (int i = 0;input[i]!='\0'; i++)
{
for (int j = i+1;input[j]!='\0'; j++)
{
if (input[i] == input[j])
{
cout << input[i] << " ";
}
}
}
cout << endl;
これはおそらくC++ですか?これは 'input'のようなものの定義がありません。完全な例にしてください。私は 'input'が' std :: string'ではないという気持ちがあります。これは生の文字バッファを使うのは悪い計画なのですべきです。 – tadman
Eric Lippertの[小さなプログラムのデバッグ方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を読んでからデバッガを使用してコードを1行ずつステップ実行します。問題が何であるかは非常に明白です。 –
@ inputman 'input'は' std :: string'にすることはできません。 'cin'は' std :: string'を受け入れる 'getline'メソッドのオーバーロードを持っていません。 –