仿照str系列函数完成自己定义的mystrlen,mystrcmp,mystrcpy,mystrcat。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//声明mystrlen函数
int mystrlen(const char *p);
//声明mystrcmp函数
int mystrcmp(const char *p1,const char *p2);
//声明mystrcpy函数
char mystrcpy(char *p1,const char *p2);
//声明mystrcat函数
void mystrcat(char *p1,const char *p2);
int main(int argc, const char *argv[])
{
char a[32]="hello";
char b[]="world";
mystrcat(a,b);
printf("strcat(a,b) = %s\n",a);
printf("strlen(b) = %d\n",mystrlen(b));
mystrcpy(a,b);
printf("strcpy(a,b) = %s\n",a);
printf("strcmp(a,b) = %d\n",mystrcmp(a,b));
return 0;
}
//mystrlen函数
int mystrlen(const char *p)
{
int i=0;
while(*p++!='\0')
i++;
return i;
}
//mystrcmp函数
int mystrcmp(const char *p1,const char *p2)
{
while(*p1++ == *p2++)
{
if(*p1=='\0'&&*p2=='\0')
return 0;
}
return (int)*p1-(int)*p2;
}
//mystrcat函数
void mystrcat(char *p1,const char *p2)
{
char *p=p1+mystrlen(p1);
while(*p2++!='\0')
{
*p++=*(p2-1);
}
}
//声明mystrcpy函数
char mystrcpy(char *p1,const char *p2)
{
char *p=p1;
while(*p2++!='\0')
{
*p++=*(p2-1);
}
*p=*(p2-1);
}
输出结果:
![](https://img-blog.csdnimg.cn/img_convert/765d51f1e11dea6bcb8152dad5ee7543.png)