作业
1> 仿照strcpy原理,手动实现 myStrcpy函数,不能使用库函数
#include<stdio.h> void myStrcpy(char arr[],char brr[]); int main(int argc, const char *argv[]) { char arr[128]; char brr[128]; printf("请输入一个字符串:"); gets(arr); myStrcpy(arr,brr); printf("%s\n",brr); return 0; } void myStrcpy(char arr[],char brr[]) { int k = 0; for(int i=0;arr[i]!= '\0';i++) { brr[k] = arr[i]; k++; } brr[k] = '\0'; }
2> 仿照strcmp原理,手动实现 myStrcmp函数,不能使用库函数
#include<stdio.h> int myStrcmp(char arr[],char brr[]); int main(int argc, const char *argv[]) { char arr[128]; char brr[128]; printf("请输入一个字符串:"); gets(arr); printf("请输入用于比较的另一个字符串:"); gets(brr); int value = myStrcmp(arr,brr); printf("%d\n",value); return 0; } int myStrcmp(char arr[],char brr[]) { int i = 0; for(i=0;arr[i] != '\0' && brr[i] != '\0';i++) { if(arr[i] != brr[i]) return arr[i] - brr[i]; } }
3> 仿照strcat原理,手动实现 myStrcat函数,不能使用库函数
#include<stdio.h> void myStrcat(char arr[],char brr[]); int main(int argc, const char *argv[]) { char arr[128]; char brr[128]; printf("请输入一个字符串:"); gets(arr); printf("请输入用于连接的另一个字符串:"); gets(brr); myStrcat(arr,brr); printf("%s\n",arr); return 0; } void myStrcat(char arr[],char brr[]) { int i = 0,j = 0; for(j = 0;arr[j] != '\0';j++); for(i=0;brr[i] != '\0';i++) { arr[j] = brr[i]; j++; } arr[j]='\0'; }
4> 手动实现 myStratoi函数 :字符串参数包含一个或多个数字,函数把这些数字字符转换为整数,并返回整数值。如果字符串参数包含了非数字字符,函数返回零
输入: "1234" ---> 1234
"he888lloo" ---> 0
#include<stdio.h> int myStratoi(char arr[],int brr[],int len); int main(int argc, const char *argv[]) { char arr[128]; int brr[128]; printf("请输入一个字符串:"); gets(arr); int len = 0; len = myStratoi(arr,brr,len); for(int i = 0;i<len;i++) { printf("%d\t",brr[i]); } printf("\n"); return 0; } int myStratoi(char arr[],int brr[],int len) { printf("其中整形数组为:"); for(int i=0;arr[i]!= '\0';i++) { if(arr[i] >= '0' && arr[i] <= '9') { brr[i] = arr[i] - 48; len++; } else { printf("0"); return 0; } } return len; }
5> 主程序中提供两个整形数组,分别初始化如下: int arr[] = {2,3,7,6,8,9,4,5,1}; int brr[] = {3,4,10,6,20,1};
定义函数传递这两个数组,并传递一个新数组
函数体内完成求出这两个数组的交集放入新数组中,并在主程序中输出新数组中的数据
#include<stdio.h> int newarr(int arr[],int len1,int brr[],int len2,int crr[],int len3); int main(int argc, const char *argv[]) { int arr[] = {2,3,7,6,8,9,4,5,1}; int brr[] = {3,4,10,6,20,1}; int crr[10]; int len1 = sizeof(arr)/sizeof(arr[0]); int len2 = sizeof(brr)/sizeof(brr[0]); int len3 = sizeof(crr)/sizeof(crr[0]); len3 = newarr(arr,len1,brr,len2,crr,len3); printf("arr[] = {2,3,7,6,8,9,4,5,1};\n"); printf("brr[] = {3,4,10,6,20,1};\n"); printf("arr与brr数组的交集为:\n"); for(int i=0;i<len3;i++) printf("%d\t",crr[i]); printf("\n"); return 0; } int newarr(int arr[],int len1,int brr[],int len2,int crr[],int len3) { int i = 0,j = 0,k = 0; for(i=0;i<len1;i++) { for(j=0;j<len2;j++) { if(arr[i] == brr[j]) { crr[k] = arr[i]; k++; } } } return k; }
6> 0-C基础知识 答案 · 华清远见工作空间
上面链接上的 函数 函数小结的选择题完成
7> 思维导图