一、mstrlen函数
#include "stdio.h"
size_t mstrlen(const char *str)
{
if (str == NULL)
{
return 0;
}
size_t len = 0;
while (*str != '\0')
{
len++;
str++;
}
return len;
}
int main()
{
char str[10]="Hello";
size_t len = mstrlen(NULL);
printf("len=%d\n",len);
len = mstrlen("");
printf("len=%d\n",len);
len = mstrlen(str);
printf("len=%d\n",len);
return 0;
};
二、mstrcat函数
#include "stdio.h"
char *mstrcat(char *destination,const char *source)
{
if (destination == NULL)
{
return NULL;
}
if (source == NULL)
{
return destination;
}
char *ret = destination;
while (*destination != '\0')
{
destination++;
}
while (*source != '\0')
{
*destination = *source;
destination++;
source++;
}
*destination='\0';
return ret;
}
int main()
{
char str1[10]="Hello";
char str2[10]="wo";
mstrcat(str1,str2);
printf("%s\n",str1);
printf("%s\n",str2);
return 0;
};
三、mstrcpy函数
#include "stdio.h"
char *mstrcpy(char *destination,const char *source)
{
if (destination == NULL)
{
return NULL;
}
if (source == NULL)
{
return destination;
}
char *ret = destination;
while (*source != '\0')
{
*destination = *source;
destination++;
source++;
}
*destination='\0';
return ret;
}
int main()
{
char dest[9]="ILove";
char src[4]="You";
mstrcpy(dest,src);
printf("%s\n",dest);
return 0;
};
四、mstrcmp函数
#include "stdio.h"
int mstrcmp(const char *destination,const char *source)
{
if (destination == NULL && source != NULL)
{
return -1;
};
if (destination != NULL && source == NULL)
{
return 1;
};
if (destination == NULL && source == NULL)
{
return 0;
};
int ret =0;
while (1)
{
if (*destination != *source)
{
if (*destination > *source)
{
ret =1;
}
else
{
ret =-1;
}
break;
}
else
{
if (*destination == '\0' && *source=='\0')
{
break;
}
destination++;
source++;
}
}
return ret;
}
int main()
{
char dest[9]="ab";
char src[4]="abc";
int a;
a=mstrcmp(dest,src);
printf("%d\n",a);
return 0;
};