#include <stdio.h>
//#include <string.h>
#define MAX_SIZE 1024/*把值定义在外面容易修改*/
int my_strlen(char *str)
{
int len = 0;
while(*str != '\0')
{
len++;
str++;
}
return len;
}
char*my_strcpy(char*dest,char*str1)
{
char*temp = dest;/*不要用形参作运算,否则返回值将不是dest的首地址*/
while(*str1 !='\0')
{
*temp = *str1;
temp++;
str1++;
}
*temp = '\0';/*手动加上结束标志符*/
return dest;
}
int my_strcmp(char*str2,char*str3)
{
while(*str2 != '\0'&& *str3 != '\0')
{
if(*str2 <* str3)
{
return -1;
}
if(*str2 > *str3)
{
return 1;
}
str2++;
str3++;
}
if((*str2 == '\0')&&(*str3 == '\0'))
return 0;
if((*str2 == '\0')&&(*str3 != '\0'))
return -1;
if((*str2 != '\0')&&(*str3 == '\0'))
return 1;
}
char*my_strcat(char*str4,char*str5)
{
char*result = str4;
//char*result2 = str5;
while(*result != '\0')
{
result++;
}
//char*result1 = result;
while(*str5 !='\0')
{
*result = *str5;
str5++;
result++;
}
*result = '\0';
return str4;
}
int main()
{
int result;
char str[MAX_SIZE];
printf("请输入一个字符:\n");
scanf("%s",str);
result = my_strlen(str);
printf("字符的长度为:%d\n",result);
char str1[MAX_SIZE];
char dest[MAX_SIZE] = {0};
printf("请输入一个字符串:\n");
scanf("%s",str1);
char*result2 = my_strcpy (dest,str1);
printf("dest = %s\n",dest);
printf("result2 = %s\n",result2);
char str2[MAX_SIZE];
char str3[MAX_SIZE];
printf("请输入第一个字符串:\n");
scanf("%s",str2);
printf("请输入第二个字符串:\n");
//getchar();
scanf("%s",str3);
//getchar();
int result3 = my_strcmp(str2,str3);
printf("result3 = %d\n",result3);
char str4[MAX_SIZE];
char str5[MAX_SIZE];
printf("请输入第一个字符串:\n");
scanf("%s",str4);/*gets函数可以录入空格,但空格在数组里面显示成‘‘\0’*/
//gets(str4);
printf("请输入第二个字符串:\n");
scanf("%s",str5);
//gets(str5);
char *result4 = my_strcat(str4,str5);
printf("result4 = %s\n",result4);
return 0;
}