我有一个用 0 填充的大型 char 数组。我从套接字读取传入文件并将其内容放在缓冲区中。我无法写入包含所有 '\0' 的缓冲区,因此我分配了一个具有正确大小的新缓冲区并进行写入。我使用这种方法来做到这一点:
int i = 0;
while(buf[i] != '\0'){
i++;
}
char new[i];
while(i){
new[i] = buf[i];
i--;
}
new[0] = buf[0];
虽然这种方法有效,但它似乎不是最聪明或最优雅的方法。从 char 数组中删除所有尾随 NULL 字符的最佳方法是什么?