strcat函数

目录

函数介绍:

函数声明:

具体使用:

 注意事项:

字符串⾃⼰给⾃⼰追加,如何?

模拟实现strcat函数:


函数介绍:

被称为字符串的追加/链接函数,它的功能就是在一个字符串后面追加上另外一个字符串。

函数声明:

char *strcat(char *_Destination, const char *_Source)

具体使用:

#include 
#include 
int main()
{
	char arr1[30] = "hello";
	char arr2[] = "world";
	strcat(arr1, arr2);
	printf("%s\n", arr1);//追加字符串
    return 0;
}

 输出结果:

 

 注意事项:

  • 源字符串必须以 '\0' 结束。
  • ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。
  • ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。
  • ⽬标空间必须可修改。

和strcpy的原因一样,详细: http://t.csdn.cn/JW6kh

字符串⾃⼰给⾃⼰追加,如何?

int main()
{
	char arr1[30] = "hello";
	strcat(arr1, arr1);
	printf("%s\n", arr1);
    return 0;
}

答案是不行的! 

strcat的本质:

  • strcat在追加的时候会对目标字符串的\0进行覆盖,且追加的原理是把追加的字符串的字符一个一个挪到追加的空间中。
  • 所以自己追加自己本质上是把自己的字符进行移动,但是这个移动的过程会覆盖掉原先的\0所以出错。

模拟实现strcat函数:

char* my_strcat(char* dest, const char* str)
{
	char* ret = dest;
	assert(*dest != NULL);
	assert(*str);
	//找到目的字符串里的'\0'
	while (*dest != '\0')
	{
		dest++;
	}
	//追加
	while (*dest++ = *str++)
	{
		;
	}
	return ret;
}

 

 

你可能感兴趣的:(C语言,算法,c语言,指针,函数,字符串)