我有一個大型的char數組,填充0。我從套接字讀入一個傳入文件並將其內容放入緩衝區。我無法寫入所有'\ 0'的緩衝區,所以我分配一個正確大小的新緩衝區並寫入。 我用這個方法來做到這一點:刪除尾部NULL終止符
int i = 0;
while(buf[i] != '\0'){
i++;
}
char new[i];
while(i){
new[i] = buf[i];
i--;
}
new[0] = buf[0];
雖然這種方法,它似乎並不像最聰明或最優雅的方式。從char數組中刪除所有尾隨空字符的最佳方法是什麼?
你是什麼意思的「刪除」?所有的數組元素都有一個值。也許'realloc'是你需要的? – 2014-09-26 22:26:41
我不認爲你完全明白這一點。你可以從你有的緩衝區寫入,你只需要知道它的有效長度。 – 2014-09-26 22:27:27
我不是說刪除,而是創建一個不同長度的新緩衝區來保存文件。 – 2014-09-26 22:28:21