作业社区
探索学习新天地,共享知识资源!
王小屁的理想主义 的学生作业:
#include char* design_array(int* plen) { char a[100]={0}; int plen=sizeof(a)/sizeof(a[0]); return a; } input_array(char a[]) { printf("请输入字符串:\n"); fget(a,100,stdin); return; } void output_array(char a[]) { for (int i=0;a[i]!='\0',i++) { printf("%c",a[i]); } printf("\n"); return; } int count_space(char a[]) { for (int i=0;a[i]!='\0';i++) { if(a[i]==' ') count++; } return count; } int main() { int*p=NULL; int len=0; int n=0; p=design_array(&len); input_array(p); output_array(p); n=count_space(p); printf("上述字符串中有%d个空格\n",n); return 0; } 【图片】
+186
FishKylin 的学生作业:
#include #include #include #include #include #include #define COMMADN_MAX 1024 #define ARGS_MAX 5 char * s_gets(char *str, int n); char ** parse_command(char *str, char **args, int args_number); int main(void) { pid_t pid; char command[COMMADN_MAX]; char *args[ARGS_MAX + 1]; while (s_gets(command, COMMADN_MAX)) { parse_command(command, args, ARGS_MAX); if ((pid = fork()) == -1) { perror("Fork: "); exit(EXIT_FAILURE); } else if (pid == 0) { if (execvp(args[0], args) == -1) { perror("Execvp: "); exit(EXIT_FAILURE); } exit(900); } int status; waitpid(pid, &status, 0); printf("Child process %d exit status %d\n", pid, WEXITSTATUS(status)); } return 0; } // 获取输入去掉换行符 char * s_gets(char *str, int n) { char *ret_val = fgets(str, n, stdin); if (ret_val) { char *find = strchr(str, '\n'); if (find) *find = '\0'; else while (getchar() != '\n') continue; } return ret_val; } // 解析输入并存储 char ** parse_command(char *str, char **args, int args_number) { char *temp; int index = 0; if (str) { temp = strtok(str, " "); while (temp && index < args_number) { args[index++] = temp; temp = strtok(NULL, " "); } } args[index] = NULL; return args; }
+95