そのため、部分的に埋められた配列で重複する文字を削除しようとしています。アレイは、PC にあるファイルから取り込まれます。私の配列作成方法は正常に機能しています。ただし、私の重複削除方法はそうではありません。これが私の方法です:
void deleteRepeated(char array[], int* numberUsed)
{
for (int x = 0; x < *numberUsed ; x++)
{
cout << "Positions used: " << *numberUsed << endl;
for (int y = x+1; y < *numberUsed; y++ )
{
cout << "Positions used: " << *numberUsed << endl;
if (array[y] == array[x])
{
cout << "Positions used: " << *numberUsed << endl;
for (int z = y; z < *numberUsed; z++)
array[z] = array[z+1];
y--;
*numberUsed--;
cout << "Positions used: " << *numberUsed << endl;
}
}
}
}
配列全体と、その配列で使用されるインデックスの数を渡します。配列の長さは 10 で、私のテストでは、これらの 10 個のうち 6 個を文字 {'g', 'g', 'n', 'o', 'r', 'e'} で使用しています。私は何を間違っていますか?
注: "cout << "Positions used: " << *numberUsed << endl" は、メソッドが正しく削除されているかどうかを確認するために使用されています。インデックスが z である最も内側のループでは、メソッドが狂気になり始めます。
どんな助けでも大歓迎です。