您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Strcat-strcpy-strcmp-Strlen函数原型
Strcat,strcpy,strcmp,Strlen函数原型1、Strcat函数原型如下:#includestdio.h#includeassert.h#includestdlib.hchar*strca(char*dst,constchar*src){char*dst_t;dst_t=(char*)malloc(sizeof(dst)+sizeof(src));char*start=dst_t;assert(dst&&src);while(*dst_t=*dst){dst_t++;dst++;}while(*dst_t=*src){dst_t++;src++;}*dst_t='\0';returnstart;}下面,贴上一个我自己写的strcpy函数,以做比较;相比之下,我自己写的这个strcpy效率就显得低了。char*my_strcat(char*s,char*t){inti;char*st,*p_st,*p_s,*p_t;st=(char*)malloc(strlen(s)+strlen(t)+1);if(st==NULL){returnNULL;printf(mallocfail!\n);}p_st=st;p_s=s;p_t=t;for(i=0;istrlen(s);i++)*(p_st++)=*(p_s++);for(i=strlen(s);i(strlen(s)+strlen(t));i++)*(p_st++)=*(p_t++);*p_st='\0';returnst;}intmain(){char*dst={woai};char*src={wodeguojia!};printf(%s\n,strca(dst,src));return0;}2、Strcpy函数原型如下:char*strcpy(char*strDest,constchar*strScr){char*address=strDest;assert((strDest!=NULL)&&(strScr!=NULL));while(*strScr)//是while(*strScr!=’\0’)的简化形式;{*strDest++=*strScr++;}*strDest='\0';//当strScr字符串长度小于原strDest字符串长度returnaddress;//时,如果没有改语句,就会出错了。}以下是在VC6.0中调试的例子,函数名用strcpya代替。#includestdio.h#includeassert.hchar*strcpya(char*strDest,constchar*strScr){char*address=strDest;assert((strDest!=NULL)&&(strScr!=NULL));while(*strScr){*strDest++=*strScr++;}*strDest='\0';returnaddress;}voidmain(){charstr1[100]={ilove};charstr2[50]={China};printf(%s\n,strcpya(str1,str2));}3、Strcmp函数原型如下:intstrcmp(constchar*str1,constchar*str2){intlen=0;assert((str1!='\0')&&(str2!='\0'));while(*str1&&*str2&&(*str1==*str2)){str1++;str2++;}return*str1-*str2;}以下是在VC6.0中调试的例子,函数名用strcmpa代替。#includestdio.h#includeassert.hintstrcmpa(constchar*str1,constchar*str2){intlen=0;assert((str1!='\0')&&(str2!='\0'));while(*str1&&*str2&&(*str1==*str2)){str1++;str2++;}return*str1-*str2;}voidmain(){charstr1[100]={ilove};charstr2[50]={China};printf(%d\n,strcmpa(str1,str2));}4、Strlen函数原型如下:intstrlen(constchar*str){intlen=0;assert(str!=NULL);while(*str++){len++;}returnlen;}以下是在VC6.0中调试的例子,函数名用strlena代替。#includestdio.h#includeassert.hintstrlena(constchar*str){intlen=0;assert(str!=NULL);while(*str++){len++;}returnlen;}voidmain(){charstr1[100]={ilove};charstr2[50]={China};printf(%d\n,strlena(str1));
本文标题:Strcat-strcpy-strcmp-Strlen函数原型
链接地址:https://www.777doc.com/doc-4282175 .html