所以我试图删除部分填充数组中的重复字符。该阵列是从位于我的 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 的最内层循环中,该方法开始变得疯狂。
任何帮助将非常感激。