У меня есть один массив символов, и я хочу удалить символы, которые удовлетворяют моему состоянию. Пример. У меня есть массив символов A = {1, -1,0, 1, -1}, и я хочу удалить элементы, которые равны -1. Это значит, что результат равен {1,0,1}, и я хочу проверить, сколько элементов в массиве. В моем примере - 3. Можете ли вы мне помочь?Удалить char из char * и вернуть char *
char* delete_char(char* sourceArray, char inputChar)
{
char* out=NULL;
//Need to malloc memory. But I don't know how many size will allocate because it depends on how many element that don't equal -1
return out;
}
int sizeofArray(char* sourceArray)
{
return size;
}
Откуда вы знаете длину входного массива? У вас нет счетчика или, похоже, имеет разделительный символ. Если вам нужно отсканировать массив, чтобы подсчитать его, вы можете вспомнить два счета: один для текущего счета и один для нового значения, не считая символов, которые вы собираетесь удалить. Или просто выделите новый массив того же размера, что и входной массив, если это проще - вы не можете удалить много символов. – Rup