1、思维导图
2、在堆区申请两个长度为32的空间,实现两个字符串的比较【非库函数实现】
#include <myhead.h>
int my_strcmp(char *str1, char *str2)
{
int i, j, k;
for(j=0; str2[j]!='\0'; j++);
for(i=0; i<=j; i++)
{
if(str1[i] > str2[i])
{
printf("Str1 > Str2\n");
return 0;
}
else if(str1[i] < str2[i])
{
printf("Str1 < Str2\n");
return 0;
}
}
printf("Str1 = Str2\n");
return 0;
}
int main(int argc, const char *argv[])
{
char *s1 = (char *)malloc(sizeof(char)*32);
char *s2 = (char *)malloc(sizeof(char)*32);
printf("Please enter No.1 string: ");
gets(s1);
printf("Please enter No.2 string: ");
gets(s2);
my_strcmp(s1, s2);
free(s1);
free(s2);
s1 = NULL;
s1 = NULL;
return 0;
}
3、定义函数,在对区申请空间
两个申请,主函数需要调用2次
#include <myhead.h>
char *Space_malloc(int n)
{
char *p = (char *)malloc(n);
if(p != NULL)
return p;
else
{
printf("Error!\n");
return 0;
)
}
int main(int argc, const char *argv[])
{
int n;
printf("Please enter the size ");
scanf("%d", &n);
char *p1 = Space_malloc(n);
char *p2 = Space_malloc(n);
free(p1);
free(p2);
p1 = NULL;
p2 = NULL;
return 0;
}
4、定义函数,实现字符串的输入
void input(char *p)
#include <myhead.h>
void Input(char *str)
{
gets(str);
}
int main(int argc, const char *argv[])
{
char str[100] = "";
Input(str);
puts(str);
return 0;
}
5、调用函数实现字符串比较,在主函数中输出大小
int my_strcmp(const char *s1,const char *s2)
#include <myhead.h>
int my_strcmp(const char *s1, const char *s2)
{
int i = 0;
while(s1[i] == s2[i] && s1[i] != '\0' && s2[i] != '\0')
{
i++;
}
return s1[i] - s2[i];
}
int main(int argc, const char *argv[])
{
char s1[100] = "";
char s2[100] = "";
printf("Please enter No.1 string: ");
gets(s1);
printf("Please enter No.2 string: ");
gets(s2);
if(my_strcmp(s1, s2) > 0)
printf("Str1 > Str2\n");
if(my_strcmp(s1, s2) < 0)
printf("Str1 < Str2\n");
if(my_strcmp(s1, s2) == 0)
printf("Str1 = Str2\n");
return 0;
}
6、定义函数,释放空间
my_free();
void my_free(char *p)
{
free(p);
}