用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx

用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx

ID:27249345

大小:50.41 KB

页数:21页

时间:2018-12-02

用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx_第1页
用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx_第2页
用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx_第3页
用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx_第4页
用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx_第5页
资源描述:

《用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、用C语言实现strcpy,strncpy,strcat,strcmp,strlen函数(本文介绍的函数都是在Linux平台下实现的)首先介绍下文件存放结构:1.所有文件都在Mystring这个文件夹里:2.Mystring文件夹里又有四个文件夹(bin,include,o_file,src)和一个主makefile(Makefile)文件:3.bin文件夹里存放的是编译生成的执行文件:1.include文件夹里存放的是头文件:2.o_file文件夹里存放的是编译生成的.o文件:3.src文件夹里存放的是各个源文件(主函数,及几个要实现的st

2、ring处理函数):下面开始看代码:头文件,Mystring.h:(简单,就不注释了)#ifndef__MYSTRING_H__#define__MYSTRING_H__#include#include#include#includechar*mystrcpy(char*strDest,constchar*strSrc);char*mystrcat(char*strDest,constchar*strSrc);intmystrcmp(constchar*strDe

3、st,constchar*strSrc);intmystrlen(constchar*strSrc);char*mystrncpy(char*strDest,constchar*strSrc,intn);char*mystrmemcpy(char*strDest,constchar*strSrc,intn);#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////

4、///////////////////////////////////////////////strcpy函数,mystrcpy.c:#include"../include/mystring.h"char*mystrcpy(char*strDest,constchar*strSrc){assert(NULL!=strDest&&NULL!=strSrc);char*str=strDest;/*//方法一:while((*strDest++=*strSrc++)!='');returnstr;*///方法二://此种方法可以考虑到内存重叠

5、的情况,但需要后续定义的mystrmemcpy函数intcount=mystrlen(strSrc)+1;str=mystrmemcpy(strDest,strSrc,count);returnstr;}char*mystrmemcpy(char*strDest,constchar*strSrc,intn){assert(NULL!=strDest&&NULL!=strSrc);char*str=strDest;if(strSrc=strDest){//内存重叠,从高地址开始拷贝strSrc=str

6、Src+n-1;strDest=strDest+n-1;while(n--){*strDest--=*strSrc--;}}else{//正常情况,不存在内存重叠while(n--){*strDest++=*strSrc++;}}returnstr;}///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

7、/////////////strncpy函数,mystrncpy.c:#include"../include/mystring.h"char*mystrncpy(char*strDest,constchar*strSrc,intn){assert(NULL!=strDest&&NULL!=strSrc);char*str=strDest;intm=0;while(*strDest!=''){strDest++;m++;}assert(n<=m);strDest=str;while(n--){*strDest++=*strSrc++;if

8、(*strSrc==''){*strDest=*strSrc;break;}}returnstr;}/////////////////////////////////////

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。