gpt4 book ai didi

c - 分割错误出来了?

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

我试图在不使用 strcat 的情况下连接 2 个字符串,但出现运行时错误。请有人帮助我...

另外,这个说法 q=q+len; 正确吗?我们可以向指针添加变量吗??

#include<stdio.h>
#include<string.h>

void xstrcat(char*,char*);
int main()
{
char source[]="folks";
char target[30]="hello";
xstrcat(target,source);
printf("%s",source);
printf("%s",target);
return 0;
}

void xstrcat(char*p,char*q)
{
int len=0;
len=strlen(q);
q=q+len;
while(*p!='\0')
{
*q=*p;
q++;
p++;
}
*q='\0';
}

最佳答案

实现中的一些错误:

1 - 您正在访问随机内存。一旦您的字符串中没有 /0

while(*p!='/0')

必须是:

while(*p!='\0')

注意斜杠 \

2 - 尝试将 *p 添加到 *q 时,您正在覆盖随机内存。您必须创建一个具有足够空间的新变量来存储它们。

Also, is this statement q=q+len; correct? Can we add a variable to a pointer??

是的。 It's a pointer arithmetic expression.

关于c - 分割错误出来了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389719/

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