C博客作业--指针

一、PTA实验作业

题目1:使用函数实现字符串部分复制

1. 本题PTA提交列表

1232060-20171216203204764-586152323.png

2. 设计思路

1232060-20171216204301218-47840783.png

3.代码截图

1232060-20171216204328561-1135661003.png

4.本题调试过程碰到问题及PTA提交列表情况说明

  • 赋值时减去t+m还要再减去1。

题目2:求子串在母串中最后一次出现的地址

1. 本题PTA提交列表

1232060-20171216204501561-742968238.png

2. 设计思路

    定义字符指针变量s1,s2,a;
    赋值a=NULL;
    while(*s)
        s1=s; s2=t;
        while(*s2)
            判断*s2是否等于*s1,如果是s1++;s2++; 否则结束循环;
            如果*s为空,则a=s;
            s++;
    返回a;

3.代码截图

1232060-20171216205051218-409131620.png

4.本题调试过程碰到问题及PTA提交列表情况说明

  • 要定义一个返回函数值NULL的指针。

题目3:字符串串动变化

1. 本题PTA提交列表

1232060-20171216205214389-388139228.png

2. 设计思路

    定义字符变量max,指针a;定义变量i=0;
    max=p[i];
    while(p[i])
        如果max小于p[i];
            a=p+i;
            max=p[i];
        i++;
    while(*a)
        将字符后移,并且第一个为max;

3.代码截图

1232060-20171216205710421-506730074.png

4.本题调试过程碰到问题及PTA提交列表情况说明

  • 无。

二、截图本周题目集的PTA最后排名

1232060-20171216205818983-651627083.png

三、阅读代码

  • IP地址转换
#include<stdio.h>
int main()
{
    char s[33],c;
    int sum=0,put[4],cnt=0;
    for(int i=1;i<=32;i++){
        c=getchar();
        sum=sum*2+c-'0';
        if(i%8==0){
            put[cnt++]=sum;
            sum=0;
        }
        
    }
    printf("%d.%d.%d.%d",put[0],put[1],put[2],put[3]);
    return 0;
}
  • 该代码利用ip地址规定的4个二进制转十进制的数定义了数组put来存放,用一句sum=sum*2+c-'0'直接实现字符和整形的转换和二进制和十进制的转换,在8个字符后重新赋值sum。代码很巧妙,所以很简短。
  • 这是吴军霖同学PTA中 删除字符串中的子串的代码。
    1232060-20171216210835530-1606092931.png
  • 他总共才用了19行代码,而网上的都是几十行的复杂代码,可见他的代码十分简洁,这种删除子串的方式构思巧妙,通过重构母串数组s来达成删除子串的目的。效率较高,占用空间也较小。

四、本周学习总结

1.自己总结本周学习内容

  • 学会了指针的基本使用,但对它的概念还不是很熟。
  • 学会了使用函数将数组和指针进行传递。
  • 学会了字符串的一些函数,极大提高对字符串的操作。

    2.罗列本周一些错题

    1232060-20171216211441280-730092484.png
    1232060-20171216211451811-108033597.png

转载于:https://www.cnblogs.com/PENGXI/p/8047684.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值