曾经做过的c练习(16-20)

来源:互联网 发布:2009的淘宝店 编辑:程序博客网 时间:2024/05/22 12:45

16、自己写一个my_putchar函数,功能和putchar一样

17、自己写一个my_strcmp函数,功能和strcmp一样

18、自己写一个my_strcpy函数,功能和strcpy一样

19、自己写一个my_strlen函数,功能和strlen一样

20、自己写一个my_strncat函数,功能和strncat一样






/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. File name:Author:Ivan    Version:0.1    Date: Description:写一个自己的my_putchar函数(16)Funcion List: *****************************************************/#include <stdio.h>void my_putchar(char *s1){int i;for(i = 0; s1[i] != '\0'; i++){printf("%c", s1[i]);}}int main(){char s1[20];printf("s1 = ");scanf("%s", s1);my_putchar(s1);printf("\n");    return 0;}

/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. File name:Author:Ivan    Version:0.1    Date: Description:写一个自己的my_strcmp函数(17)Funcion List: *****************************************************/#include <stdio.h>int my_strcmp(char *s1, char *s2){int i = 0;while (s1[i] != '\0' || s2[i] != '\0'){if (s1[i] > s2[i]){return 1;break;}if (s1[i] < s2[i]){return -1;break;}if (s1[i] == s2[i]){i++;}if (s1[i] == '\0' && s2[i] == '\0'){return 0;}}}int main(){int i;char s1[20], s2[20];scanf("%s",s1);scanf("%s",s2);i = my_strcmp(s1,s2);printf("%d\n",i);    return 0;}


/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. File name:Author:Ivan    Version:0.1    Date: Description:写一个自己的my_strcpy函数(18)Funcion List: *****************************************************/#include <stdio.h>void my_strcpy(char *s1, char *s2){while(*s1 != '\0'){*s2 = *s1;s1++;s2++;}*s2 = '\0';}int main(){char s1[40], s2[40];int i;printf("s1 = ");scanf("%s", s1);my_strcpy(s1, s2);printf("s2 = ");printf("%s\n", s2);    return 0;}

/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. File name:Author:Ivan    Version:0.1    Date: Description:写一个自己的my_strlen函数(19)Funcion List: *****************************************************/#include <stdio.h>int my_strlen(char *s1){int i = 0;while(*s1 != '\0')//计算字符串若要省略空格,用if(*s1 == ‘ ’) continue;{s1++;i++;}return i;}int main(){int i;char *p;char s1[20];p = s1;printf("s1 = ");*p = getchar();while(*p != '\n'){p++;*p = getchar();}*p = '\0';i = my_strlen(s1);printf("%d\n",i);    return 0;}

/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. File name:Author:Ivan    Version:0.1    Date: Description:写一个自己的my_strncat函数(20)Funcion List: *****************************************************/#include <stdio.h>void my_strncat(char *s1, char *s2, int n){int i;while(*s1 != '\0'){s1++;}for(i = 0; i < n; i++){*s1 = *s2;s1++;s2++;}*s1 = '\0';}int main(){char s1[40], s2[20];int n;printf("s1 = ");scanf("%s", s1);printf("s2 = ");scanf("%s", s2);printf("n = ");scanf("%d", &n);my_strncat(s1, s2, n);printf("s1 = ");printf("%s\n",s1);    return 0;}



1 0