![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
函数的模拟实现
文章平均质量分 60
函数的模拟实现
ppppppatrick
这个作者很懒,什么都没留下…
展开
-
【c语言进阶】strncpy介绍(包含特性)及其模拟实现
受长度限制的string函数int main(void){ char arr1[] = "abcdef"; char arr2[] = "qwertyuiop"; strncpy(arr1, arr2,6); printf("%s\n",arr1); return 0;}即拷贝六个字符拷贝num个字符从源字符串到目标空间如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个int main(void){原创 2022-04-02 11:30:00 · 491 阅读 · 0 评论 -
【c语言进阶】结构体、位段、枚举、联合体的介绍及使用
结构的声明struct tag{ member-list;}variable-list;struct Stu{ char name[20]; int age; double score;}s1, s2, s3;int main(void){ struct stu s4; return 0;}特殊声明(匿名类型)可以没有名字,但是只能用一次哦匿名结构体的成员如果一样,在编译器看来却是不同类型的结构体如下面,不能用:p = &x,这俩原创 2022-03-26 11:30:00 · 4040 阅读 · 3 评论 -
【c语言进阶】strcpy函数介绍以及模拟实现
Copy string字符串拷贝int main(void){ char arr1[20] = { 0 }; char arr2[] = "abcdef"; strcpy(arr1, arr2); printf("%s\n",arr1); return 0;}#注意事项strcpy的源字符串中必须以\0结尾也会将\0拷贝过去目标空间必须足够大,以确保能存放源字符串目标空间必须可变(比如char* 类型,它指向的是常量字符串)学会模拟实现返回原创 2022-03-29 22:49:05 · 505 阅读 · 0 评论 -
【c语言进阶】memmove函数介绍以及其模拟实现
memmove()void * memmove ( void * destination, const void * source, size_t num );和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。如果源空间和目标空间出现重叠,就得使用memmove函数处理。int main(void){ int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 }; int arr2[5] = { 0 }; memmove原创 2022-03-27 11:30:00 · 689 阅读 · 0 评论 -
【c语言进阶】动态内存管理详解
本章重点为什么存在动态内存分配动态内存函数的介绍mallocfreecallocrealloc常见的动态内存错误几个经典的笔试题柔性数组1. 为什么存在动态内存分配我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配.但是对于空间的原创 2022-03-31 14:00:00 · 208 阅读 · 11 评论 -
【c语言进阶】atoi函数的介绍及模拟实现
【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’\0’)才结束转换,并将结果返回。【返回值】返回转换后的整型数如果 str 不能转换成 int 或者 str 为空字符串,那么将返回0int my_atoi(const char* str){ assert(str); char* pos1;//用于记录数字的最高位原创 2022-04-03 11:30:00 · 876 阅读 · 1 评论