指针
一.PTA实验作业
6-2 移动字母
1.PTA提交列表
2.设计思路
主函数定义字符串长度,输入字符串s,调用shift函数,在shift子函数中,定义i,a1,a2,a3,t等变量,
先将传入的字符串前三个字符存入新定义变量,当s[i+3]不等于‘\0’时循环执行s[i]=s[i+3],然后执
行s[i]=a1;s[i+1]=a2;s[i+2]=a3;最后返回主函数
3.本题调试过程碰到问题及PTA提交列表情况说明
问题:for循环条件错了,这是一整个字符串,题目已经保证字符串长度一定大于3
修改:s[i+2]应该是不等于'\0'2
4.正确的代码截图
6-4 字符串的连接
1.PTA提交列表
2.设计思路
主函数定义*p,str1[MAXS+MAXS]={'\0'},str2[MAXS]={'\0'},输入str1,str2,调用str_cat子函数
子函数定义*p=s,当*s!='\0'时,执行s++;当*t!='\0'时,执行*s++=*t++;循环完之后*s='\0',返回
主函数。
3.本题调试过程碰到问题及PTA提交列表情况说明
问题:因为已经使*p=s,所以执行*p++是错的
修改:*p++=*t++改为*s++=*t++
4.正确的代码截图
6-6 使用函数实现字符串部分复制
1.PTA提交列表
2.设计思路
主函数定义变量定义变量n, t[MAXN], s[MAXN],输入m,调用ReadString(t)子函数,
读到字符串第m个字符,然后调用strmcpy( t, m, s )子函数,从第m个字符开始的
全部字符复制到字符串s中,定义变量i,j,当*(t+i)!='\0'时,执行s[j++]=*(t+i),
累加然后执行*(s+j)='\0',返回主函数
3.本题调试过程碰到问题及PTA提交列表情况说明
问题:循环初始条件出错,从第m个字符开始,但因为是数组,数组都是从0开始,所以第m个应该是m-1个
修改:把i=m改成i=m-1
4.正确的代码截图
二、同学代码结对互评
1.互评同学名称
麻英红
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?
如果同学代码有错的也请帮忙指出来哪里出问题。
她用了三个循环,我只用了一个,她是一个一个来将字符移动到最后的
并存到s[ ]中,而我是一次将三个字符串进行移动,然后再存到s[ ]中,
我比较喜欢我的代码。
三、截图本周题目集的PTA最后排名
四、本周学习总结
1.你学会了什么?
一些指针的基本概念及运用,还有指针数组等,如:*p是一个值,p是地址,指针变量可以初始化为空指针,
但不能用数值作为指针变量的初值;指针数组中每个数组元素中存放的内容都是地址,通过数组元素可以访
问它所指向的单元等。
2.本周的内容,你还不会什么?
指针数组和指针字符等不够明白,运用不好
指针练习最后几题也不会写