代码如下:
#include <stdio.h>
int mystrlen(char arr[]){
int i=0;
char *pr=arr;
while(*(pr+i)!='\0'){
i++;
}
printf("该字符串的长度为%d\n",i);
return i;
}
void mystrcpy(char arr[],char cpy[]){
char* prr1=arr;
char* prr2=cpy;
int i=0;
while(*(prr1+i)!='\0'){
*(prr2+i)=*(prr1+i);
i++;
}
printf("cpy==%s\n",cpy);
}
void mystrcmp(char arr[],char cmp[]){
char* prr1=arr;
char* prr2=cmp;
int i,res;
for(i=0; ;i++){
res=*(prr1+i)-*(prr2+i);
if(res !=0 )
break;
else if(*(prr1+i) == '\0')
break;
}
printf("两个数组相差为%d\n",res);
}
void mystrcat(char arr[],char cat[]){
char* prr1=arr;
char* prr2=cat;
int i=0,j;
for(i=0;*(prr1+i)!='\0';i++);
for(j=0;*(prr2+j)!='\0';j++,i++){
*(prr1+i)=*(prr2+j);
}
printf("追加后的数组为>>>>>%s\n",prr1);
}
int main(int argc, const char *argv[])
{
int a;
char arr[20]={0};
char arr1[20]={0};
printf("请选择要进行的功能:\nstrlen请输入1\nstrcpy请输入2\nstrcmp请输入3\nstrcat请输入4\n>>>>");
scanf("%d",&a);
getchar();
switch(a){
case 1:
gets(arr);
mystrlen(arr);
break;
case 2:
printf("请输入第一个数组>>>");
gets(arr);
mystrcpy(arr,arr1);
break;
case 3:
printf("请输入第一个数组>>>");
gets(arr);
printf("请输入第二个数组>>>");
gets(arr1);
mystrcmp(arr,arr1);
break;
case 4:
printf("请输入第一个数组>>>");
gets(arr);
printf("请输入第二个数组>>>");
gets(arr1);
mystrcat(arr,arr1);
break;
default:
printf("输入错误\n");
break;
}
}
结果如下: