【问题标题】:strcpy : Implementation methodstrcpy : 实现方法
【发布时间】:2011-11-01 03:28:34
【问题描述】:

我正在研究库函数strcpy 的可能实现方法。它是:

void strcpy(char *src, char *dest)
{
while (*dest++ = *src++)
            ;
}

如果不检查'\0',这怎么可能工作??

【问题讨论】:

  • 如果 *src =="\0" 它会在一段时间内结束。不是吗?
  • 您将变量切换为正确的,但对于标准库,参数应该按dest, src 的顺序排列。这就是他们为strcpy、strcat、memcpy、memmove 等做的事情。
  • 另外,您应该将src 设为const char * 以表明它不会被写入。

标签: c string


【解决方案1】:

*dest++ = *src++ 的结果是*src 在增加src 之前的值。如果此值为\0,则循环终止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-12
    • 2013-01-06
    • 1970-01-01
    • 2021-03-28
    • 2012-10-07
    • 2013-10-18
    • 2020-10-11
    • 2015-03-19
    相关资源
    最近更新 更多