我正在尝试使用指针将字符串str复制到str中。我认为可以使用单个指针本身来实现。每当我运行我的代码时,我都会显示str1,但有多余的垃圾字符。请帮忙。提供一些见识
setUsername
答案 0 :(得分:0)
i
始终是同一元素,因为您永远不会增加q
。因此,所有其他元素保持不变,并且i
的空终止符再也没有机会被复制。
然后,当您打印它时,该程序具有未定义的行为。
最好将0
从len
循环到= {}
。
您还应该考虑使用scanf
初始化数组,以便它们首先包含空值。
此外,您的{{1}}不执行边界检查,因此非常不安全。
答案 1 :(得分:0)
这里有个例子:
char *mystrcpy(char *dest, const char *src)
{
char *saveddest = dest;
while(*src)
{
*dest++ = *src++;
}
*dest = 0;
return saveddest;
}
或
char *two_in_one_strcpy_strlen(char *dest, const char *src, size_t *len)
{
char *saveddest = dest;
*len = 0;
while(*src)
{
*dest++ = *src++;
*len++;
}
*dest = 0;
return saveddest;
}