gpt4 book ai didi

c - 附加字符串的函数返回指针/转换错误

转载 作者:行者123 更新时间:2023-11-30 14:41:39 25 4
gpt4 key购买 nike

我正在尝试创建一个函数,该函数接受两个输入字符串(dest 和 src),并将 src 字符串附加到 dest 字符串。

下面是我目前拥有的功能。然而,当我尝试使用它时,我收到一条错误消息,指出“从没有强制转换的函数返回 'char'”。我知道我的错误涉及 return 语句以及我如何将其用作指针,但我不确定如何修复它。

char* strcat(char dest[], char src[]) {
int destL = lenstr(dest);
int srcL = lenstr(src);
char result[destL + srcL];

int i;
for(i = 0; i < destL; i++){
result[i] = dest[i];
}

for(i = destL; i < destL+srcL; i++){
result[i] = src[i-destL];
}

return *result;
}

lenstr函数是:

int lenstr(char* s) {
int len = 0;
while(s[len++] != '\0');
return len-1;
}

最佳答案

您无法返回本地声明的数组。可以,但数据可能随时被覆盖,因为它不再有效。

你需要做的是这样的:

char* strcat(char dest[], char src[]) {
char * result = malloc((lenstr(dest)+lenstr(src)+1) * sizeof *result);

// Code to copy data

return result;
}

请注意,+1 对于为 \0 终止符腾出空间非常重要。

关于c - 附加字符串的函数返回指针/转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54846922/

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