【发布时间】:2016-01-18 00:10:05
【问题描述】:
char *strcat(char*dest, char*src) {
while (dest != '\0') {
*dest++;
}
while (src != '\0') {
*dest++ = *src++;
}
return dest;
}
我一直在*dest++ = *src++ 线上遇到分段错误。有关如何解决问题的任何想法?
【问题讨论】:
-
您想检查
dest和src指向的值是否为空终止符,而不是指针本身。所以,while (*dest)和while (*src)。还可以考虑将src设为指向 const 的指针,如下所示:const char* src。 -
除了@szczurcio提到的问题外,还需要对
dest字符串进行NULL终止,同时保存dest的原始值,以便返回。 -
为什么是-1?这可能不是正确的代码,但问题已明确定义,源示例格式良好。