所以我试图追加一个char
到char*
。C追加char到char *
比如我有char *word = " ";
我也有char ch = 'x';
我做append(word, ch);
使用此方法..
void append(char* s, char c)
{
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
}
它给了我一个分段错误,我明白为什么我想。因为s[len]
超出范围。我如何使它如此工作?如果我要使用像char [500]这样的字符,我还需要清除char*
;一旦它附加了一些字符,我将如何清除它?它的strlen
是否总是500
?提前致谢。
“因为s [len]超出范围。” < - 非常适合初学者!恭喜。但是,您仍然有其他错误 - 字符串文字是只读的,您无法修改其内容。 – 2012-10-17 16:56:24
@ H2CO3's [len + 1]'超出界限。 '[len]'是空字节,它不被'strlen'计数。 – pmr
@pmr是的,技术上是正确的。我应该写'sizeof(s)'代替。 – 2012-10-17 17:01:52