使用指针在没有strcpy的情况下复制字符串

时间:2018-12-20 11:40:37

标签: c arrays string

我正在尝试使用指针将字符串str复制到str中。我认为可以使用单个指针本身来实现。每当我运行我的代码时,我都会显示str1,但有多余的垃圾字符。请帮忙。提供一些见识

setUsername

2 个答案:

答案 0 :(得分:0)

i始终是同一元素,因为您永远不会增加q。因此,所有其他元素保持不变,并且i的空终止符再也没有机会被复制。

然后,当您打印它时,该程序具有未定义的行为。

最好将0len循环到= {}

您还应该考虑使用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;
}