在堆區申請兩個長度為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 *malloc_p()
{char *p=(char *)malloc(32);return p;
}void intput(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++;}int sub=s1[i]-s2[i];return sub;
}void Free(char *p1,char *p2)
{free(p1);free(p2);
}
int main(int argc, const char *argv[])
{char *p1=malloc_p();char *p2=malloc_p();printf("please enter p1:");intput(p1);printf("please enter p2:");intput(p2);printf("結果為:");int sub=my_strcmp(p1,p2);if(sub>0)puts("p1>p2");else if(sub<0)puts("p1<p2");else if(sub==0)puts("p1=p2");Free(p1,p2);return 0;
}
?