Удаление всех вхождений элемента из динамически выделяемого массива в С++C++

Программы на C++. Форум разработчиков
Anonymous
Удаление всех вхождений элемента из динамически выделяемого массива в С++

Сообщение Anonymous »

Правильен ли этот код? Должен отметить, что это работает.
void RemoveAllEntries(char*& str, int& size, char item)
{
int count = 0;

char* temp = new char[size];

for (int i = 0; i < size; i++)
if (item == str)
count++;

temp[size-count] = str[size - count];
for (int i = 0; i < size; i++)

if (str != item)
{
temp = str;

}
else
{
temp = str[size-item];
}

delete[] str;
str = temp;

size--;
}

Если это неправильно, то почему это работает? Правильно ли вычитать элемент из размера?
ИЗМЕНИТЬ
int main()
{
int size = 8;
char* str = new char[size] { 'b', 'b', 'b', 'c', 'd', '.', 'f', '\0' };
RemoveAllEntries(str, size, 'b');
for (int i = 0; i < size; i++)
{
cout

Подробнее здесь: https://stackoverflow.com/questions/791 ... array-in-c

Вернуться в «C++»