模拟实现函数
zhengyawen666
这个作者很懒,什么都没留下…
展开
-
模拟实现atoi
一 功能转换。将字符类型的数字转换成整数类型的数字二 声明与定义int atoi (const char * str);需要传入一个字符类型的指针,会返回int类型的值三 特别注意的问题1 如果传入的字符指针是空指针怎么办?-》assert2 如果传入的字符串是空字符串怎么办?-》返回03 如果传入的字符串有空格怎么办?-》isspace判断,空格就跳过4 如果传入的字符串有其他非数字类型的字符:比如字母怎么办?-》返回05 如何处理正负号? -》定义一个fl.原创 2022-04-10 21:54:53 · 87 阅读 · 0 评论 -
模拟实现memmove
一 功能该函数可以实现memcpy的功能,但是memcpy不能实现自己对自己的拷贝,但是用memmove就可以解决这个问题。二 函数的声明和定义void*memmove(void*dest,const void*src,size_t count)类比memcpy三 函数的使用由于该函数相当于memcpy的升级版,因此只对优化的部分演示使用。#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<原创 2022-03-23 19:12:51 · 312 阅读 · 0 评论 -
模拟实现memcpy
一: 功能类比strcpy,实现的是字符串的拷贝工作。但是memcpy直接对内存进行操作,可以对任意类型进行拷贝。二:定义与声明void*memcpy(void*dest,const void*src,size_t count)void*dest也就是说可以接受任意类型的数据。size_t count 该函数是按照字节进行拷贝的。三:使用下面对char和int类型进行拷贝使用#define _CRT_SECURE_NO_WARNINGS 1 #include<std原创 2022-03-23 17:52:27 · 356 阅读 · 0 评论 -
模拟实现strcmp
模拟实习strcmp之前我们先来了解一下strcmp的功能。strcmp用于比较两个字符串。逐个逐个进行比较,如果有字符不同,按照字典顺序进行比较。如果该位置arr1较大,返回大于零的数字;如果该位置arr1较小,返回小于零的数字。如果一直比较到‘\0’的时候依然相等,返回0;使用注意:①返回值是int类型②按照字典顺序进行比较,不是按照长度进行比较。③'\0'或者有差异的位置就停下来我们先来看一下该函数的一个使用#define _CRT_SECURE_NO_WARNINGS原创 2022-03-21 19:41:13 · 279 阅读 · 0 评论 -
模拟实现strcat
我们先来了解一下strcat这个函数。这个库函数用于追加字符串。将源字符串追加到目标字符串之后,包括'\0‘。所需的函数:记录目标起始位置的char*指针,记录源位置的const char*类型的指针,返回值是char*,也是便于实现链式访问。使用时注意事项:① 目标空间必须足够大(否则会造成越界访问)并且可修改。②源字符串和目标字符串都是以\0结束的。③不能自己追加自己,否则会导致死循环。其实可以将strcat函数与strcpy函数进行类比,只不过起点发生变化。下面来演...原创 2022-03-20 19:35:54 · 329 阅读 · 1 评论 -
模拟实现strcpy
在模拟实现strcmp之前,我们先来了解一下这个库函数。这个函数的所需参数是目标地址,源地址(const char*防止被修改),返回类型是char*,也就是返回目标字符串的起始地址。这样操作便于实现链式访问。举个例子。#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<string.h>int main(){ char arr1[100] = {}; char arr2[] = { "he原创 2022-03-20 16:06:27 · 182 阅读 · 0 评论 -
模拟实现函数strlen
在模拟实现strlen之前,我们先来了解一下strlen如何使用。正在上传…重新上传取消原创 2022-03-20 15:26:01 · 1275 阅读 · 0 评论 -
关于qsort
如何对整型/浮点型/字符串/结构体等多种类型实现快速排序呢?不得不提到的一个库函数:qsort!我们先来初步了解一下qsort:qsort(void*base,size_t num,size_t size,int(*compar)(const void*,const void*));qsort库函数包含四个参数。①第一个参数void*base 也就是需要进行比较的字符串的首元素的地址。由于地址在内存中是连续存放的。得到了首元素的地址就可以顺藤摸瓜找到其他的元素了。为什么是void*类型的呢?原创 2022-03-16 21:33:19 · 316 阅读 · 0 评论