苏嵌项目实训 学习日志2
2018-09-04 21:44
155 查看
学习日志 姓名:王文杰 日期:2018.9.4
今日学习任务
数据结构和算法中关于栈的操作(先进后出)。
今日任务完成情况
上课能基本跟上老师的节奏,代码编写正常,编译没有问题。
作业
1、请编写一个C函数,该函数将一个字符串逆序
#include <stdio.h> #include <string.h> char *Stact(char *s) { int i; int n = strlen(s)/2; char num; for(i = 0; i <= n; i++) { num = s[i]; s[i] = s[strlen(s)-i-1]; s[strlen(s)-i-1] = num; } return s; } int main() { char str[20]; printf("\n"); scanf("%s", str); printf("%s\n", Stact(str)); return 0;
2、请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
#include <stdio.h> #include <string.h> void change(char *s,int num,int n) { int i=0; char temp; while(num != 0) { s[i] = num%n; if(s[i] <= 9) { s[i] = s[i]+'0'; } else { switch(s[i]) { case 10:s[i] = 'A'; break; case 11:s[i] = 'B'; break; case 12:s[i] = 'C'; break; case 13:s[i] = 'D'; break; case 14:s[i] = 'E'; break; case 15:s[i] = 'F'; break; default:break; } } i++; num = num/n; } s[i] = '\0'; int len = strlen(s); for(i = 0;i < len/2;i++) { temp = s[i]; s[i] = s[len-i-1]; s[len-i-1] = temp; } } int main() { int num; int n; char src[100]; printf("please input num:\n"); scanf("%d",&num); printf("please input n:\n"); scanf("%d",&n); change(src,num,n); printf("the result is\n%s\n",src); return 0; }
3、 输入一个字符串,计算字符串中子串出现的次数
#include<stdio.h> #include<string.h> int fun(char *a, char *b) { int len_b; int count = 0; int num = 0; char *temp = b; len_b = strlen(b); while (*a != '\0') { if (*a == *temp) { while ((*a == *temp) && (*a != '\0') && (*temp != '\0')) { num++; a++; temp++; } if (num == len_b) { count++; } num = 0; temp = b; } else { a++; } } return count; } int main() { char a[100]; char b[10]; int num; printf("Enter the main string(<=100)!\n"); scanf("%s",a); printf("Enter the substring(<=10)!\n"); scanf("%s",b); num = fun(a,b); printf("The number is:%d\n",num); return 0; }
4、 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构.
``` #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *str[4]; char *ptr = "I am from shanghai"; int i, j; for (i = 0; i<4; i++) { str[i] = (char *)malloc(sizeof(char) * 20); } for(i = 0; i < 4; i++) { ptr ++; for (j = 0; j<20; j++) { if(*(ptr - 1) == ' ' || *(ptr - 1) == '\0') { break; } strncat(str[i],ptr - 1, 1); ptr++; } } for(i = 3; i >= 0; i--) { printf("%s ",str[i]); } printf("\n"); return 0; }
今日未解决的问题
出栈与入栈程序不能理解,不能独立编写程序。
自我评价
上课勉强能跟上老师编写代码的节奏,但是并不能完全理解代码的含义。
相关文章推荐
- 苏嵌项目实训 学习日志4
- 苏嵌项目实训 学习日志3
- spring的学习-common-logging搭配log4j配置项目日志
- 学习总结:毕业项目-项目实训开题
- 【项目学习】——C#自动生成错误日志
- 苏嵌7.11学习日志
- 苏嵌学习日志0718
- 苏嵌学习日志15 07.23
- 项目开发学习日志01
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
- 苏嵌学习日志22 07.30
- java开源项目之IQQ学习记录之单例模式与log4j日志记录
- 苏嵌学习日志01 7.9
- 苏嵌学习日志7.15
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
- 实训项目中的学习(1)数据库表设计原则小技巧
- 学习Coding-iOS开源项目日志(五)
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
- 苏嵌学习日志03 0711
- Cocos2d-x 3.1.1 学习日志1--安装和创建项目(入门必看)