strlen改写:
1 #include <stdio.h>
2 int mystrlen(char* str)
3 {
4 int i = 0;
5 for(i = 0;;)
6 {
7 if(*(str+i)!='\0')
8 {
9 i++;
10 }else
11 {
12 break;
13 }
14 }
15 return i;
16 }
17 int main(int argc, const char *argv[])
18 {
19 char arr[10];
20 char* pa = arr;
21 printf("请输入需要计算的字符串:");
22 gets(pa);
23 printf("arr数组的有效元素长度为%d\n",mystrlen(pa));
24 return 0;
25 }
strcpy改写:
1 #include <stdio.h>
2
3 char* mystrcpy(char* str,char* str1)
4 {
5 int i = 0;
6 for( i = 0;*(str1+i)!= '\0';i++ )
7 {
8 *(str+i) = *(str1+i);
9 }
10 *(str+i)='\0';
11 return str;
12 }
13 int main(int argc, const char *argv[])
14 {
15 char arr[6];
16 char arr1[6];
17 printf("请输入第一个字符串:");
18 gets(arr);
19 printf("请输入第二个字符串:");
20 gets(arr1);
21 char* pa = arr;
22 char* pa1 = arr1;
23 puts(mystrcpy(pa,pa1));
24 return 0;
25 }
strcmp改写:
1 #include <stdio.h>
2 int mystrcmp(char* str,char* str1)
3 {
4
5 int res = 0;
6 for(int i = 0;;i++)
7 {
8 res = *(str+i)-*(str1+i);
9 if(res != 0)
10 {
11 break;
12 }else if(*(str+i)=='\0')
13 {
14 break;
15 }
16 }
17
18 return res;
19 }
20 int main(int argc, const char *argv[])
21 {
22 char arr[10];
23 char arr1[10];
24 char* pa = arr;
25 char* pa1 = arr1;
26 printf("请输入第一个字符串:");
27 gets(pa);
28 printf("请输入第二个字符串:");
29 gets(pa1);
30 printf("res = %d",mystrcmp(pa,pa1));
31
32 return 0;
33 }
strcat改写:
1 #include <stdio.h>
2
3 char* mystrcat(char *str,char *str1)
4 {
5 int i = 0,j = 0;
6 for(i = 0;*(str+i)!= '\0';i++);
7 for(j = 0;*(str1+j)!='\0';j++)
8 {
9 *(str+i+j)=*(str1+j);
10 }
11 *(str+i+j)='\0';
12 return str;
13 }
14 int main(int argc, const char *argv[])
15 {
16 char arr[10];
17 char arr1[10];
18 char* pa = arr;
19 char* pa1 = arr1;
20 printf("请输入第一个字符串:");
21 gets(pa);
22 printf("请输入第二个字符串:");
23 gets(pa1);
24 printf("%s",mystrcat(pa,pa1));
25
26 return 0;
27 }