C58-字符串拼接函数strcat
一 C语言 strcat
函数简明总结
功能
将 src
字符串拼接到 dest
字符串末尾(覆盖 dest
的 \0
,并在新末尾补 \0
)。
原型
char *strcat(char *dest, const char *src);
要点
- 目标空间必须足够大,否则导致缓冲区溢出(未定义行为)。
- 不检查长度,安全替代:
strncat
(可指定最大拼接长度)。 - 返回
dest
指针,便于链式调用。
示例
- 代码示例:
#include <stdio.h>
#include <string.h>
int main()
{char dest[20] = "Hello";strcat(dest, " world!"); // dest 变为 "Hello world!"printf("%s\n",dest);return 0;
}
- 成果展示:
注意
- 若
dest
或src
为NULL
,程序崩溃。 - 避免内存重叠(未定义行为)。
二 手搓一个strcat函数
- 代码示例:
#include <stdio.h>
#include <string.h>
#include <assert.h>char *MyStrcat(char *dest,char *source)
{assert(dest!=NULL&&source!=NULL);char *back=dest;while(*dest!='\0'){dest++;}while((*dest++=*source++)!=0);*dest='\0';return back;
}int main()
{char dest[20] = "Hello";char *p=" world!";MyStrcat(dest,p);printf("%s\n",dest);return 0;
}
- 成果展示: