can't get duplicate delay
the program runs, but it does not accomplish the duplicate-delete in the array. for example, if the array is 4 and someone enters "bill", it should output "bil". can anyone figure out what's wrong?
Code:
#include<iostream>
using namespace std;
void delete_repeats(char a[], int& index_used);
void erase_and_shift(char a[], int& index_used, int& arraysize);
int main ()
{
int index_used = 0;
int arraysize = 0;
char a[100];
cout<<"Please enter the size that you would like of an array from 0-100 : \n";
cin >>arraysize;
cout<<"Now enter "<< arraysize<<" characters :\n";
int k= 0;
while (k<arraysize)
{
cin>> a[k];
k++;
}
delete_repeats(a, index_used);
cout <<"The numbers you entered are: ";
for (int index = 0; index < arraysize; index++)
{
cout << a[index];
}
cout << endl;
return 0;
}
void delete_repeats(char a[], int& index_used)
{
int i, j;
for(i = 0; i < index_used - 1; i++)
for(j = index_used - 1; j > i; j--)
if(a[j] == a[i])
{
erase_and_shift(a, j, index_used);
}
}
void erase_and_shift(char a[], int& index_used, int& arraysize)
{
//int k = index_used
int k = arraysize;
//while k < arraysize increments of k by +1
while (k < index_used -1)
{
k++;
}
//array of k = array of k +1 increment of -1
a[k]= a[k+1];
index_used --;
}