自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 模拟实现memmove函数

memmove函数也是从源src 拷贝n个字节到目的 dst 中。 与memcpy不同的是,memmove会考虑内存重叠问题,会对两内存的位置进行判断,从而考虑是从前往后拷贝或是从后往前拷贝。内存中的位置关系可以分为以下四种,而前三种又能统一划分到一组,因为在这种情况下,从前往后拷贝时,拷贝过程中目的内存不会覆盖掉即将要拷贝的源内存。 第四种关系中,如果我们按照传统的方式从前往后拷贝时,可能会出

2017-11-16 21:47:01 283

原创 模拟实现memcpy

memcpy 内存拷贝函数 其功能是从源src所指内存地址的起始位置拷贝n 个字符到目的dst 所指内存地址的起始位置。 注意:memcpy函数不能解决内存重叠问题, 而memmove函数能够很好的解决这一问题,下一篇中会详细说明。函数实现:void *my_memcpy(void *dst, const char *src, int count){ assert(src);

2017-11-16 20:56:57 240

原创 模拟实现strcat函数

strcat 字符串连接函数 可以将str2 拼接在str1 后面函数实现:char *my_strcat(char *dst, const char *src){ assert(dst); assert(src); char *s = dst; while (*s) { s++; } while (*s++ = *src+

2017-11-16 20:09:46 195

原创 模拟实现strchar函数

strchar 查找字符串 s 中首次出现字符 c 的位置函数实现:char *my_strchar(const char *str, char c){ assert(str); while (*str) { if (!(*str - c)) { return str; } else

2017-11-16 20:00:44 455 1

原创 模拟实现strstr

strstr是查找子串的函数,从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1的指针,如果没有,返回null。函数实现:char *my_strstr(const char *str,const char *substr){ assert(str); assert(substr); char *cp = str; if

2017-11-16 19:50:39 176

原创 模拟实现strcmp函数

strcmp函数是进行两字符串的比较, 若s1=s2,返回0, 若s1>s2,返回-1, 若s1>s2,返回1。 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。代码如下:int my_strcmp(const char *str1,const char *str2){ assert(str1); ass

2017-11-16 19:32:43 264

原创 模拟实现strlen函数

strlen是求字符串长度的函数,其作用相当于一个计数器,它从所传过来的参数位置处开始扫描,同时计数,遇到第一个字符串结束符 ‘\0’ 停止计数,并返回计数结果。 注意:所求长度不包括’\0’下面利用三种方法实现://迭代int my_strlen1(const char *str){ assert(str); int count = 0; while (*str++)

2017-11-16 19:14:06 195

原创 实现一个函数,可以左旋字符串中的k个字符

ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 以下通过三种方法来实现://方法一//将字符串除第一个字符外的所有字符左移,再将第一个字符放置最后一位,操作N次static leftmove(char *str, int len){ char tmp = str[0]; int i = 0; for (i = 0; i < len - 1; i++

2017-11-09 21:34:40 177

原创 可变参数列表

一般情况下,函数只能接受固定数目的参数,而且,函数能处理的参数个数不超过五个。但有些时候,我们需要传递的参数个数不确定,或者说,参数个数大于五个,例如,求十个数的平均数,并将每个数以参数的形式传递过去,这时候,就需要用到可变参数列表。先看一个例子://使用可变参数列表,通过函数实现N个数字的平均值int average(int n,...){ va_list arg; int i=0

2017-11-09 19:33:35 222

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除