Удаление всех вхождений элемента из динамически выделяемого массива в С++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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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