思维导图
在堆区申请两个长度为32的空间,实现两个字符串的比较【非库函数实现】
1> 定义函数,在对区申请空间
两个申请,主函数需要调用2次
2> 定义函数,实现字符串的输入
void input(char *p)
3> 调用函数实现字符串比较,在主函数中输出大小
int my_strcmp(const char *s1,const char *s2)
4> 定义函数,释放空间
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *my_malloc()
{
char *p=(char *)malloc(32);
return p;
}
void my_input(char *p)
{
gets(p);
}
int my_strcmp(const char *s1,const char *s2)
{
int i=0;
while(s1[i]==s2[i])
{
if(s1[i]=='\0')
break;
i++;
}
return s1[i]-s2[i];
}
void my_free(char *p)
{
free(p);
p=NULL;
}
int main(int argc, const char *argv[])
{
char *s1=my_malloc();
char *s2=my_malloc();
printf("请输入字符串1:");
my_input(s1);
printf("请输入字符串2:");
my_input(s2);
int sub=my_strcmp(s1,s2);
if(sub>0)
printf("s1>s2\n");
else if(sub<0)
printf("s1<s2\n");
else if(sub==0)
printf("s1==s2\n");
my_free(s1);
my_free(s2);
return 0;
}