自己实现strcat函数
问题:自己实现一个strcat_s函数,要和C语言库函数的strcat函数完成同样的功能。
(1) 函数原型 char *strcat(char *dest, const char *src);
(2) 函数说明 dest 为目的字符串指针,src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部;dest 最后的结束字符 NULL 会被覆盖掉,并在连接后的字符串的尾部再增加一个 NULL。
注意:dest 与 src 所指的内存空间不能重叠,且 dest 要有足够的空间来容纳要复制的字符串。
(3) 返回值 返回dest 字符串起始地址。
C++实现代码:
#include <stdio.h>
#include <assert.h>
char* strcat_s(char* dest, const char* src)
{
assert(dest != NULL && src != NULL);
char* temp = dest;
while (*temp != '\0') temp++;
while ((*temp++ = *src++) != '\0');
return dest;
}
int main() {
char src[10] = "world";
char dest[100] = "hello ";
char* str3 = strcat_s(dest, src);
printf("src = %s\n", src);
printf("dest = %s\n", dest);
printf("str3 = %s\n", str3);
return 0;
}
问题2:strcat能把strSrc 的内容连接到strDest,为什么还要char * 类型的返回值?
答:方便赋值