gpt4 book ai didi

c - 查找字符串结尾 : *s++ VS *s then s++

转载 作者:行者123 更新时间:2023-12-02 05:22:01 28 4
gpt4 key购买 nike

我正在编写一个简单的字符串连接程序。

该程序按照我发布的方式运行。但是,我首先使用以下代码编写它来查找字符串的结尾:

while (*s++)
;

但是,这个方法并没有奏效。我传递给它的字符串没有被正确复制。具体来说,我试图将“abc”复制到包含“\0”的 char[] 变量。

从阅读 C K&R 书来看,它看起来应该有效。该紧凑形式应采取以下步骤。

  1. *s 与'\0'进行比较
  2. s指向下一个地址

为什么它不起作用?我正在 Debian 上使用 gcc 进行编译。

我发现这个版本确实有效:

strncat(char *s, const char *t, int n)
{
char *s_start = s;

while (*s)
s++;

for ( ; n > 0 && *t; n--, s++, t++)
*s = *t;

*(s++) = '\0';

return s_start;
}

提前致谢。

最佳答案

while (*s++);结束后,s指向空终止符之后的字符。在下面的代码中考虑到这一点。

关于c - 查找字符串结尾 : *s++ VS *s then s++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174426/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com