main.c:
int main(int argc, const char *argv[])
{
// ************ 作业 *************
//1.改写 strlen strcpy strcmp strcat
// *** 改写strlen
printf("*** my_strlen:\n");
char str[32] = "";
printf("请输入str:");
gets(str);
int l = my_strlen(str);
printf("main函数打印-->%d\n\n",l);
// *** 改写strcpy
printf("*** my_strcpy:\n");
char str1[32]="",str2[32]="";
printf("请输入str1:");
gets(str1);
my_strcpy(str1,str2);
printf("main打印:%s\n\n",str2);
// *** 改写strcmp
printf("*** strcmp:\n");
char str3[32] = "",str4[32] = "";
printf("请输入str3:");
gets(str3);
printf("请输入str4:");
gets(str4);
int x = my_strcmp(str3,str4);
printf("%d\n\n",x);
// *** 改写 strcat
printf("*** strcat:\n");
char str5[32]="",str6[32]="";
printf("请输入str5:");
gets(str5);
printf("请输入str6:");
gets(str6);
my_strcat(str5,str6);
printf("拼接以后:%s\n",str5);
return 0;
}
my_string.c
#include <stdio.h>
int my_strlen(char str[])
{
int i=0;
for(i; str[i] != '\0';i++);
printf("调用打印-->字符数:%d\n",i);
return i;
}
void my_strcpy(char str1[],char str2[])
{
int i=0;
for(i=0; str1[i] != '\0'; i++)
{
str2[i] = str1[i];
}
str2[i] = '\0';
printf("str2:%s\n",str2);
return ;
}
int my_strcmp(char str1[], char str2[])
{
int i=0,a=0;
for(i=0; str1[i] != '\0' || str2[i] != '\0' && a == 0; i++)
{
a = str1[i] - str2[i];
}
return a;
}
void my_strcat(char str1[], char str2[])
{
int i=0,j=0;
for(i=0;str1[i] != '\0';i++);
for(i,j=0;str2[j] != '\0';i++,j++)
{
str1[i] = str2[j];
}
return ;
}
my_string.h:
#ifndef
#define
int my_strlen(char str[]);
void my_strcpy(char str1[],char str2[]);
int my_strcmp(char str1[], char str2[]);
void my_strcat(char str1[], char str2[]);
#endif