彻底掌握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; }
图形分析:
函数连接前:
函数连接后:
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。 !