Я только недавно приступил к C++, и я с трудом сдвигая элементы массива, чтобы удалить пустые/нулевые элементыC++ сдвиг элементов массива влево
char *aBlock;
aBlock = new char[100];
int main(int argc, char **argv)
{
aBlock[20] = 'a'; // fill array with test data.
aBlock[10] = 's';
aBlock[30] = 'd'; // Excepted output: This test data should be shifted to the start of array
// Consider aBlock contains data, with random empty elements
for(int i=1; i <= aBlock.length(); i++) {
if(aBlock[i-1] == 0) {
aBlock[i-1] = aBlock[i];
aBlock[i] = 0;
}
}
return 0;
}
Edit: Исправлен код опечатку & неправильные имена переменных, изменились "==" - "=". Он по-прежнему не работает должным образом.
Замечание о терминологии: массив не может иметь «пустые» элементы. В вашем случае вы, кажется, хотите удалить элементы со значением '== 0'. – juanchopanza
Что такое '.length()' указателя в первую очередь? – deviantfan
@juanchopanza Учитывая приведенный выше код, я бы назвал aBlock [50] пустым, поскольку ему ничего не назначено. Какова была бы правильная терминология для описания ее состояния? – AgentOrange