【发布时间】:2010-05-21 18:17:17
【问题描述】:
// The first example:
char text[] = "henri";
char *p;
p = text;
*(p + 1) = 'E'; // Output = hEnri
// Now If we want to remove the "e" ie hnri, we would go for?????
*(p + 1)=?????
显而易见的答案是将数组的其余部分“向后”复制一个位置。但这似乎……不愉快。肯定有更好的方法吗?
【问题讨论】:
-
我认为单次赋值操作不可能做到这一点。
-
@Codism 更好地使用你的脑袋:-)
-
不幸的是,“开始复制”(或至少移动)就是答案。
-
@Frust:
*(int32_t*)(p+1) = *(int32_t*)(p+2);(不要在家里这样做。) -
@Codism - 完全错误。当您拥有的唯一工具是火箭筒时,一切都开始看起来像一个指针:) 因此,在这种情况下,火箭筒比锤子更合适。