一、Strcat函数的参数
Strcat函数所引用的头文件是<string.h>
char*strcat(char* strDestination, const char* strSource);
参数说明:
- strDestination:目的字符串;
- strSource:源字符串。
- strcat() 函数把 strSource 所指向的字符串追加到 strDestination 所指向的字符串的结尾,所以必须要保证 strDestination 有足够的内存空间来容纳两个字符串,否则会导致溢出错误。
- 返回值:指向 strDestination 的指针。
注意:strDestination 末尾的\0
会被覆盖,strSource 末尾的\0
会一起被复制过去,最终的字符串只有一个\0
。
二、实例运用操作使用Strcat函数
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[40]="abcdef"; //目的地字符串
char arr2[]="heyaholic";//源字符串
strcat(arr1,arr2);
printf("%s\n",arr1)
return 0;
}
调试结果如下:
自己个自己追加时候,程序会崩溃!而Strncat能解决这个问题
#include <stdio.h>
#include <string.h>
int main()
{
int len =strlen(arr1);
char arr1[40]="abcdef"; //目的地字符串
char arr2[]="heyaholic";//源字符串
strncat(arr1,arr1,len);
printf("%s\n",arr1);
return 0;
}
调试结果如下:
三、自写Strcat函数的实现程序
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
char *mystrcat(char *dest,const char *src)
{
char *start = dest;
while (*dest != '\0')
{
dest++;
}
while (*dest++ = *src++)
{
;
}
return start;
}
int main()
{
char dest[100] = "abc";
char src[] = "def";
printf("%s\n",mystrcat(dest,src));
return 0;
}
调试结果如下: