彻底掌握C语言strcat函数的用法

 2024-01-29 04:02:23  阅读 0

彻底掌握C语言函数的使用

更新时间:2022年5月05日 14:35:57 作者:

它用于拼接字符串。 它将把参数 src 字符串复制到参数 dest 指向的字符串末尾。 本章将带你了解它的使用并进行模拟。

目录

下面详细解释该函数

1. 功能介绍 1.1. 功能界面

char* __cdecl strcat (char * dst, const char * src);

这里是库函数中的函数定义接口。 该函数是将字符串src与dst连接起来,也就是串联字符串函数。

1.2. 功能分析

分析:

1. dst和src字符串末尾都必须包含'\0';

2、dst字符串是可变的,不能用const修改; src 可以用 const 修改。

3. dst目标字符串的空间必须足够大。

4、该函数的返回值是字符指针类型。

1.3. 功能简单使用

代码如下所示:

int main()
{
	char ch1[20] = "Hello";
	char ch2[] = "World";
	strcat(ch1, ch2);
	printf("%s\n", ch1);
	return 0;
}

图形分析:

函数连接前:

串的字符类型_c语言字符串strlen_c语言实现字符串strcpy

函数连接后:

串的字符类型_c语言字符串strlen_c语言实现字符串strcpy

2.库函数源码

char * __cdecl strcat (char * dst, const char * src)//__cdecl:是函数调用约定
{
	char * cp = dst;
	while( *cp )
	cp++;                 //find end of dst 
	while((*cp++ = *src++) != '\0') ;       //Copy src to end of dst 
	return( dst );                  //return dst 
}

库函数分析

分析:

1.这里dst没有用const修饰,但是src可以用const修饰。

2、这里定义了一个新的字符指针cp,指向dst的起始位置,然后cp开始循环操作。 指针dst始终指向字符串的开头,最后返回dst所指向的字符串。

3.首先在目标空间中找到起始字符串的末尾,然后在末尾处连接。

4. while((*cp++ = *src++) != '\0'); 这句话用最简单的代码实现了字符串拼接。

3.功能仿真与实现的仿真与实现

char* my_strcat(char* str1, const char* str2)
{
	char* first = str1;
	assert(str1 && str2);
	//目标空间的'\0'
	while (*str1 != '\0')
	{
		str1++;
	}
	//追加内容到目标空间
	while (*str1++ = *str2++)
	{
		;
	}
	return first;
}
int main()
{
	char ch1[20] = "Hello";
	char ch2[] = "World";
	printf("%s\n", my_strcat(ch1, ch2));//这里包含链式访问
	return 0;
}

已分析

1.这是一个模拟实现函数,相关细节与源码中相同。

2.链式访问:使用一个函数的返回值作为另一个函数的参数称为链式访问。

写在背面

朋友们,相聚的时间总是短暂的,又到了告别的时候了~不过面试的时候经常会被问到字符串,是为了模拟某个字符串函数的实现,所以我们不能只在日常生活中使用它。 头文件直接调用,不了解原理~要把字符串函数理解透、理解透、理解透。

上面的代码就可以运行了。 使用的编译环境为:运行时请添加编译头文件#NGS 1

这篇关于彻底掌握C语言函数使用的文章到此结束。 有关C语言函数的更多信息,请搜索 House之前的文章或继续浏览以下相关文章。 希望大家以后多多支持 House。 !

标签: 函数 字符 修饰

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码