模拟实现:

strstr

strcpy

strlen

strcat

strcmp

memcpy

memmove

================================

1 strstr 字符串中查找子字符串

char * my_strstr(const char *dest, const char *src)
{const char *ret = dest;const char *p = dest;const char *q = src;assert(dest != NULL && src != NULL);
while(ret)
{
q = src;
while(*p == *q)
{
p++;
q++;
}
if(*q == '\0')
{
return (char *)ret;
}
else
{
p = ++ret;
}
}
return NULL;
}

===========================================

2 strcpy 字符串复制

char *my_strcpy(char *dest,const char *src)
{
char *ret = dest;
assert(dest);
assert(src);
while(*dest++ = *src++)
{
;
}
return ret;
}

==========================================

3 strlen 测字符串长度

int my_strlen(const char *s)
{
const char *p = s;
while(*s)
{
s++;
}
return s - p;
}

==========================================

4 strcat 连接字符串

char * my_strcat(char *dest, const char *src)
{
char *ret = dest;
assert(dest);
assert(src);
while(*dest)
{
dest++;
}
while(*dest++ = *src++)
{
;
}
return ret;
}

=========================================

5 strcmp 字符串复制

int my_strcmp(const char *s1, const char *s2)
{
assert(s1);
assert(s2);
while(*s1 == *s2)
{
if(*s1 == '\0')
{
return 0;
}
s1++;
s2++;
}
return (*s1 - *s2 > 0 ? 1 : -1);
}

============================================

6 memcpy 内存复制

void * my_memcpy(void *buf1,const void *buf2,int count)
{
void *ret = buf1;
char *dest = (char *)buf1;
char *src = (char *)buf2;
assert(buf1);
assert(buf2);
while(count--)
{
*dest++ = *src++;
}
return ret;
}

=====================================================

7 memmove 内存移动

void *my_memmove(void *buf1, const void *buf2,int count)
{
void *ret = buf1;
char *dest = (char *)buf1;
char *src = (char *)buf2;
assert(buf1);
assert(buf2);
if(dest > src && dest < src + count)//重叠时从后向前移动
{
while(count--)
{
*(dest + count) = *(src + count);
}
}
else
{
while(count--)
{
*dest++ = *src++;
}
}
return ret;
}

转载于:https://blog.51cto.com/alick/1719727

模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove相关推荐

  1. C语言程序设计 | 模拟实现内存操作函数:strncpy, strncat, strncmp, memcpy, memmove

    模拟实现字符串和内存操作函数(二)目录: strncpy strncat strncmp strcmp memcpy memmove strncpy char* strncpy(char* dst, ...

  2. 【C】模拟实现strlen,strcpy,strcat,strcmp,strncpy,syrcat,strnact,strncmp,strstr等字符串函数

    目录 字符串函数模拟实现 1.strlen模拟实现 2.strcpy模拟实现 3.strncpy模拟实现 4.strcat模拟实现 5.strncat模拟实现 6.strcmp模拟实现 7.strnc ...

  3. C语言字符串库函数strlen、strcpy、strcat、strcmp、strstr使用详解及其实现

    写在前面:现在在刷简单题的时候,老是遇到字符串操作的题,用c语言自己实现很麻烦,其实c语言也有很多对字符串操作很方便的库函数.这个博客写来一是为了巩固自己一下自己学的知识,二也可以方便大家查询. 一. ...

  4. 缓存区的输入输出,字符串常用操作,实现strlen/strcpy/strcat/strcmp函数)

    输出缓冲区: 程序输入的数据并不能立即显示在屏幕上,而是先存储在输出缓冲区中,满足一些条件后才显示出来. 1.遇到\n后 2.遇到输入语句 3.当输出缓冲区满4K 4.当程序结束 5.手动刷新 ffl ...

  5. 《strcmp,strcpy,memcpy,memmove等函数模拟实现》

    模拟实现常见字符串函数比如:strcmp,strcpy,memcpy,memmove等函数 1.模拟实现memcpy函数 2.模拟实现memmove函数 3.模拟实现strstr函数 4.模拟实现st ...

  6. c语言strcpy两字符串长度不同,(C语言)自己写字符串操作函数(一)——strlen/strcpy/strcat/strcmp/st...

    看到很多面试都会要求你写一些简单的字符串操作函数,这些函数看起来挺简单的,但是自己写的时候就会发现不少的问题.所以我自己把大部分的字符串操作函数都写了一遍,然后用了个测试程序来测试自己写的函数与库函数 ...

  7. c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型

    实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...

  8. C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结

    1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...

  9. strlen,strcpy,strcat,strcmp函数

    1.strlen函数 strlen函数的作用是计算给定字符串的长度,从内存的某个位置开始,遇到第一个'\0'结束. 使用样例: int main() {const char *ar = "a ...

最新文章

  1. TMSScripter演示
  2. Python TeamViewer批量提交密码重置--分析与实现
  3. 【数据平台】sqoop支持hive和mysql互导的基本语句格式
  4. Http / Put 和 Post 区别
  5. linux mysql删除密码忘记了_linux下忘记mysql密码的几种找回方法(推荐)
  6. linux du -sh 脚本,Linux之shell脚本(2)
  7. python 可变参数传递
  8. 稳定的货源社区新版云乐购免费开源源码
  9. PostgresSQL数据类型
  10. 一千行代码铸造Terminal文本编辑器
  11. 菜鸟html代码在线,html菜鸟教程,HTML新手如何快速入门
  12. 【Codecs系列】X265编码器(六):lookahead模块分析
  13. Animation 动画介绍和实现
  14. 微软量子计算“天使梦”破碎,扬言的巨大胜利终究是一个“错误”
  15. matlab里comb用法,comb_comb的意思和用法搭配
  16. mysql sql 列变成横向_mysql怎么更改纵向变横向排列
  17. mac 中 caps lock和control键交换,以及alt键替换option方法
  18. 怎么制定市场营销策划方案
  19. 隧道二衬钢筋(一键生成)
  20. Java 实现 YoloV7 人体姿态识别

热门文章

  1. [文摘20070930]人际关系,你有五十五招
  2. 【Tools】Markdown数学符号公式(史上最全公式表)
  3. ASP.NET2.0打通文件图片处理任督二脉【月儿原创】
  4. 从0开始搭建编程框架——主框架和源码
  5. C++中的虚函数表介绍
  6. OpenCV3.3中决策树(Decision Tree)接口简介及使用
  7. android怎么播放音频,Android播放音频的两种方式
  8. python中符号计算输出数学_Python科学计算与数据处理—符号运算库.doc
  9. 敲的php代码怎么预览,php代码实现文件的预览
  10. serch安装2012 windows_随身携带电脑系统 U盘系统工具WinToGo系统安装到U盘