如何修复我的strcat函数中的错误

时间:2013-07-03 22:35:40

标签: c++

以下代码位于我的标题文件中:

char mystrcat(char *s1, const char *s2) //strcat function
{
  mystrcpy(s1 + mystrlen(s1), s2);
  return s1;
}

错误是返回s1; “返回值类型与函数类型不匹配。” 我知道strcat函数会将源字符串的副本附加到目标字符串,但是如何修复此错误。 我的代码的另一部分是在main.cpp中。如果你需要更多代码,请告诉我。

3 个答案:

答案 0 :(得分:1)

您的功能应该返回char,但您将返回s1 char*

确保您了解s1

末尾没有分配空间的问题

答案 1 :(得分:1)

您的签名应该是

char* mystrcat(char *s1, const char *s2)
 // ^~~~~~ Note the pointer

答案 2 :(得分:0)

1)错误:“返回值类型与函数类型不匹配    原因:s1是char *;你的签名返回“char”    解决方案:将您的签名更改为char *

2)什么是mystrcpy()?那里潜藏着什么错误?

3)更重要的是,谁为你回来的“s1”分配了空间?

4)如果返回的值大于原始值(可能的情况),会发生什么?你有缓冲区溢出吗?

5)如果原始值是只读的(另一种可能的情况)会发生什么?

等等...