strlen、strcat、strcpy、strcmp的实现

时间:2021-06-25 16:09:52
#include<stdio.h>

#include<stdlib.h>


int  mystrlen(char c[]){
int i=0;
while(c[i++]!='\0');
return i-1;
}

int mystrcmp(char b[],char c[]){
int len1,len2,max,i;
len1=mystrlen(b);
len2=mystrlen(c);
max=len1>len2?len1:len2;
for(i=0;i<max;i++){
if(b[i]<c[i]){
return -1;
}
else if(b[i]>c[i]){
return 1;
}else{
i++;
if(i>=max){return 0;}
}
}
}


void mystrcat(char b[],char c[]){
int len1,len2,i;
char d [100];
len1=mystrlen(b);
len2=mystrlen(c);
for(i=0;i<len1;i++){
d[i]=b[i];
}
for(i=len1;i<len1+len2;i++){
d[i]=c[i-len1];
}
for(i=0;i<len1+len2;i++){
printf("%c",d[i]);
}
printf("\n");
}

void mystrcpy(char b[],char c[]){
int len1,len2,i;
len2=mystrlen(c);
for(i=0;i<len2;i++){
b[i]=c[i];
}
for(i=0;i<len2;i++){
printf("%c",b[i]);
}
printf("\n");
}
int main(){
int len,len1;
char c[20];
char d[15];
while(gets(c)!=NULL&&gets(d)!=NULL){
puts(c);
puts(d);
len=mystrlen(c);
printf("mystrlen=%d\n",len);
len=mystrcmp(c,d);
printf("mystrcmp=%d\n",len);
mystrcat(c,d);
mystrcpy(c,d);
}
system("pause");
return 0;
}