1>自定义函数(my_strlen)实现strlen函数功能
1 #include<stdio.h>
2 #include<string.h>
3 #define M 100
4 int my_strlen(char str[]) //定义my_strlen实现strlen功能
5 {
6 int sum=0;
7 for(int i=0;str[i]!='\0';i++)
8 {
9 sum++;
10 }
11 return sum;
12 }
13 int main(int argc, const char *argv[])
14 {
15 char str[100]="";
16 printf("请输入字符串:");
17 gets(str);
18 int len=my_strlen(str); //调用my_strlen函数
19 printf("字符串长度为%d\n",len);
20 return 0;
21 }
2>自定义函数(my_strcpy)实现strcpy函数功能
1 #include<stdio.h>
2 #include<string.h>
3 #define M 100
4 void my_strcpy(char str1[],char str2[]) //定义一个能实现strcpy功能的函数
5 {
6 for(int i=0;str1[i]!='\0';i++)
7 {
8 str2[i]=str1[i];
9 }
10 printf("%s\n",str2);
11 }
12 int main(int argc, const char *argv[])
13 {
14 char str1[]="qwertasd"; //定义一个字符数组
15 char str2[M]=""; //定义一个需要复制的数组
16 my_strcpy(str2,str1); //调用函数
17 return 0;
18 }
3>自定义函数(my_strcmp)实现strcmp函数的功能
1 #include<stdio.h>
2 #include<string.h>
3 #define M 100
4 int my_strcmp(char a[],char b[])
5 {
6 for(int i=0;a[i]!='\0'&&b[i]!='\0';i++)
7 {
8 if(a[i]>b[i])
9 {
10 return 1;
11 }
12 if(a[i]<b[i])
13 {
14 return -1;
15 }
16 }
17 return 0;
18 }
19 int main(int argc, const char *argv[])
20 {
21 char str1[M]="";
22 char str2[M]="";
23 printf("请输入字符串1:");
24 gets(str1);
25 printf("请输入字符串2:");
26 gets(str2);
27 int result=my_strcmp(str1,str2);
28 switch(result)
29 {
30 case 1:printf("字符串1>字符串2\n");
31 break;
32 case 0:printf("字符串1=字符串2\n");
33 break;
34 case -1:printf("字符串1<字符串2\n");
35 break;
36 }
37
38
39 return 0;
40 }
4>自定义函数(my_strcat)实现strcat函数的功能
1 #include<stdio.h>
2 #include<string.h>
3 #define M 100
4 char my_strcat(char a[],char b[]) //定义函数实现strcat函数功能
5 {
6 int j=strlen(a);
7 for(int i=0;b[i]!='\0';i++)
8 {
9 a[j]=b[i];
10 j++;
11 }
12 }
13 int main(int argc, const char *argv[])
14 {
15 char str1[M]="";
16 char str2[M]="";
17 printf("请输入字符串1:");
18 gets(str1);
19 printf("请输入字符串2:");
20 gets(str2);
21 my_strcat(str1,str2); //调用函数
22 printf("%s\n",str1);
23 return 0;
24 }
5>自定(my_strstr)实现求src字符串中是否包含子串dest字符
(没写出来)
1 #include<stdio.h>
2 #include<string.h>
3 int my_strstr(char str1[],char str2[])
4 {
5 int i=0,j=0,k=0;
6 for(i=0;str1[i]!='\0';i++) //循环找到str2首字符在str1的位置
7 {
8 k++;
9 if(str2[0]==str1[i]) //判断能找到str2首字母在str1的位置
10 {
11 for(j=0;str2[j]!='\0';j++)
12 {
13 if(str2[j]!=str1[k])
14 {
15 printf("不包含\n");
16 return 0;
17 }
18 }
19 printf("包含\n");
20 return 0;
21 }
22 }
23 printf("不包含\n");
24 }
25 int main(int argc, const char *argv[])
26 {
27 char str1[]="hello,world";
28 char str2[]="world";
29 my_strstr(str1,str2);
30 return 0;
31 }