作业1:重写char *strcpy(char *dest, const char *src);
#include <stdio.h>
char *Mystrcpy(char *p1,const char *p2)
{
char *dest = p1;
while (*p2 != '\0')
{
*dest = *p2;
dest++;
p2++;
}
*dest = '\0';
return p1;
}
int main(int argc, char const *argv[])
{
char str1[100];
char str2[100];
char *p1 = str1;
char *p2 = str2;
printf("请输入第一个字符串:");
gets(p1);
printf("请输入第二个字符串:");
gets(p2);
printf("str1 = [%s]\n",Mystrcpy(p1,p2));
return 0;
}
运行截图:
作业2:重写char *strcat(char *dest, const char *src);
#include <stdio.h>
char *Mystrcat(char *p1,const char *p2)
{
char *dest = p1;
while (*dest != '\0')
{
dest++;
}
while (*p2 != '\0')
{
*dest = *p2;
dest++;
p2++;
}
return p1;
}
int main(int argc, char const *argv[])
{
char str1[100];
char str2[100];
char *p1 = str1;
char *p2 = str2;
printf("请输入第一个字符串:");
gets(p1);
printf("请输入第二个字符串:");
gets(p2);
printf("str1 = [%s]\n",Mystrcat(p1,p2));
return 0;
}
运行截图:
作业3:重写size_t strlen(const char *s);
#include <stdio.h>
int Mystrcmp(char *p1,char *p2)
{
while (*p1 != '\0' && *p2 != '\0')
{
if (*p1 != *p2)
{
return *p1 - *p2;
}
else
{
*p1++;
*p2++;
}
}
if(*p1 != '\0' && *p2 == '\0')
{
return *p1 - '0';
}
else if(*p1 == '\0' && *p2 != '\0')
{
return *p2 - '0';
}
else if(*p1 == '\0' && *p2 == '\0')
{
return 0;
}
}
int main(int argc, char const *argv[])
{
char str1[100];
char str2[100];
char *p1 = str1;
char *p2 = str2;
gets(p1);
gets(p2);
if(Mystrcmp(p1,p2) > 0)
{
printf("str1 = [%s] > str2 = [%s]\n",p1,p2);
}
else if (Mystrcmp(p1,p2) < 0)
{
printf("str1 = [%s] < str2 = [%s]\n",p1,p2);
}
else if(Mystrcmp(p1,p2) == 0)
{
printf("str1 = [%s] = str2 = [%s]\n",p1,p2);
}
return 0;
}
运行截图: