模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
模拟实现:
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相关推荐
- C语言程序设计 | 模拟实现内存操作函数:strncpy, strncat, strncmp, memcpy, memmove
模拟实现字符串和内存操作函数(二)目录: strncpy strncat strncmp strcmp memcpy memmove strncpy char* strncpy(char* dst, ...
- 【C】模拟实现strlen,strcpy,strcat,strcmp,strncpy,syrcat,strnact,strncmp,strstr等字符串函数
目录 字符串函数模拟实现 1.strlen模拟实现 2.strcpy模拟实现 3.strncpy模拟实现 4.strcat模拟实现 5.strncat模拟实现 6.strcmp模拟实现 7.strnc ...
- C语言字符串库函数strlen、strcpy、strcat、strcmp、strstr使用详解及其实现
写在前面:现在在刷简单题的时候,老是遇到字符串操作的题,用c语言自己实现很麻烦,其实c语言也有很多对字符串操作很方便的库函数.这个博客写来一是为了巩固自己一下自己学的知识,二也可以方便大家查询. 一. ...
- 缓存区的输入输出,字符串常用操作,实现strlen/strcpy/strcat/strcmp函数)
输出缓冲区: 程序输入的数据并不能立即显示在屏幕上,而是先存储在输出缓冲区中,满足一些条件后才显示出来. 1.遇到\n后 2.遇到输入语句 3.当输出缓冲区满4K 4.当程序结束 5.手动刷新 ffl ...
- 《strcmp,strcpy,memcpy,memmove等函数模拟实现》
模拟实现常见字符串函数比如:strcmp,strcpy,memcpy,memmove等函数 1.模拟实现memcpy函数 2.模拟实现memmove函数 3.模拟实现strstr函数 4.模拟实现st ...
- c语言strcpy两字符串长度不同,(C语言)自己写字符串操作函数(一)——strlen/strcpy/strcat/strcmp/st...
看到很多面试都会要求你写一些简单的字符串操作函数,这些函数看起来挺简单的,但是自己写的时候就会发现不少的问题.所以我自己把大部分的字符串操作函数都写了一遍,然后用了个测试程序来测试自己写的函数与库函数 ...
- c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型
实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...
- C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结
1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...
- strlen,strcpy,strcat,strcmp函数
1.strlen函数 strlen函数的作用是计算给定字符串的长度,从内存的某个位置开始,遇到第一个'\0'结束. 使用样例: int main() {const char *ar = "a ...
最新文章
- TMSScripter演示
- Python TeamViewer批量提交密码重置--分析与实现
- 【数据平台】sqoop支持hive和mysql互导的基本语句格式
- Http / Put 和 Post 区别
- linux mysql删除密码忘记了_linux下忘记mysql密码的几种找回方法(推荐)
- linux du -sh 脚本,Linux之shell脚本(2)
- python 可变参数传递
- 稳定的货源社区新版云乐购免费开源源码
- PostgresSQL数据类型
- 一千行代码铸造Terminal文本编辑器
- 菜鸟html代码在线,html菜鸟教程,HTML新手如何快速入门
- 【Codecs系列】X265编码器(六):lookahead模块分析
- Animation 动画介绍和实现
- 微软量子计算“天使梦”破碎,扬言的巨大胜利终究是一个“错误”
- matlab里comb用法,comb_comb的意思和用法搭配
- mysql sql 列变成横向_mysql怎么更改纵向变横向排列
- mac 中 caps lock和control键交换,以及alt键替换option方法
- 怎么制定市场营销策划方案
- 隧道二衬钢筋(一键生成)
- Java 实现 YoloV7 人体姿态识别
热门文章
- [文摘20070930]人际关系,你有五十五招
- 【Tools】Markdown数学符号公式(史上最全公式表)
- ASP.NET2.0打通文件图片处理任督二脉【月儿原创】
- 从0开始搭建编程框架——主框架和源码
- C++中的虚函数表介绍
- OpenCV3.3中决策树(Decision Tree)接口简介及使用
- android怎么播放音频,Android播放音频的两种方式
- python中符号计算输出数学_Python科学计算与数据处理—符号运算库.doc
- 敲的php代码怎么预览,php代码实现文件的预览
- serch安装2012 windows_随身携带电脑系统 U盘系统工具WinToGo系统安装到U盘