1.在堆区申请两个长度为32的空间,实现两个字符串的比较【非库函数实现】
#include <stdio.h>
#include <stdlib.h>
void input(char*p);
void my_strcmp(char *p1,char *p2);
int main(int argc, const char *argv[])
{
//申请内存空间32个字节
char *p1=(char*)malloc(32);
char *p2=(char*)malloc(32);
//定义输入函数
input(p1);
input(p2);
//调用比较^_^_字符串的函数
my_strcmp(p1,p2);
//释放指针指向的地址并指向NULL
free(p1);
free(p2);
p1=NULL;
p2=NULL;
return 0;
}
//(1)定义输入字符串的函数
void input(char*p)
{
printf("请输入字符串:");
scanf("%s",p);
}
//(2)比较字符串的函数
void my_strcmp(char *p1,char *p2)
{
int i=0;
while(p1[i]==p2[i])//判断当字符相同时继续循环下一个字符
{
if(p1[i]=='\0')
{
break;
}
i++;
}
if(p1[i]-p2[i]>0)
{
puts("第一个字符串大");
}
if(p1[i]-p2[i]<0)
{
puts("第二个字符串大");
}
if(p1[i]-p2[i]==0)
{
puts("两个字符串一样大");
}
}
2.思维导图