苏嵌//季宇晨//7.18

 

 

 

 

今日学习任务

 

  1. 熟练掌握函数的使用
  2. 学习字符串处理函数
  3. 学习数组名的基本用法和地址
  4. 学习基本类型变量的地址

今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

  1. 了解了函数调用过程(他一共有6步:1、函数名也是一个指针常量,保存函数的入口地址,通过函数名找到函数的入口地址;2、是给形参分配空间;3、传参4、执行函数体的语句;5、返回;6、释放空间)
  2. 知道了什么时候传值,什么时候传对应空间的地址
  3. 了解了传入参数和传出参数(int result = func(&num,&num2)),当我们需要返回多个值时,可以用传出参数
  4. 知道了return 0和exit(1)的区别:一个是告诉操作系统已经退出,不需要再做多余的检查;另一个是结束整个程序;
  5. 学习了几种字符串处理函数的用法:strcpy,strncpy,strcat,strncat,strcmp,strncmp。
  6. 学习了数组名的基本用法,以及数组和指针之间的转换
  7. 了解了一维数组和二维数组的一些基本用法和地址

今日开发中出现的问题汇总

 

  1. 今天早上主要是对字符串的处理函数进行了练习,分别定义了my_strcpy,my_strncpy等,在编写第一个的时候出现了段错误,但后面解决了
  2. 下午老师主要讲了数组和指针,并且在编写数组这上面有一些欠缺,很容易把地址写错

 

今日未解决问题

 

今日开发收获

掌握了几种字符串处理函数的用法,对以后编写程序有很大的帮助,能简化很多

了解了a[i],a[i][j]用指针的怎么表示

并且知道了二维数组每一步分别表示什么,分别代表哪部分的地址

 

自我评价

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

对字符串的处理函数掌握的还可以,但是下午的数组和指针,掌握的不是很好,并不能很好的把他应用起来,可能还是没有太理解,还需要加强练习

 

其他

 

  1. 对字符串的处理函数

#include<stdio.h>

#include<string.h>

char *my_strcpy(char *dest,char *src)

{

    char *s_tmp = src;

    char *d_tmp = dest;

   

    while(*s_tmp != '\0')

    {

        *d_tmp = *s_tmp;

       s_tmp++;

       d_tmp++;

    }

    *d_tmp = '\0';

    return dest;

}

 

 

char *my_strncpy(char *dest,char *src,int len)

{

    int i;

    char *s_tmp = src;

    char *d_tmp = dest;

    for(i = 0;i < len;i++)

    {

        *(d_tmp + i) = *(s_tmp + i);

    }

    *(d_tmp + i) = '\0';

    return dest;

   

}

char *my_strcat(char *dest,char *src)

{

    char *s_tmp = src;

    char *d_tmp = dest;

    while(*d_tmp != '\0')//让他移到末尾

    {

        d_tmp++;

    }

    while(*s_tmp != '\0')

    {

        *d_tmp = *s_tmp;

       *d_tmp++;

       *s_tmp++;

    }

    *d_tmp = '\0';

    return dest;

}

char *my_strncat(char *dest,char *src,int len)

{

    int i;

    char *s_tmp = src;

    char *d_tmp = dest;

    for(i = 0;i < len; i++)

    {

        *(d_tmp + i) = *(s_tmp + i);

    }

    *(d_tmp + i) = '\0';

    return dest;

}

 

int my_strcmp(char *s1,char *s2)

{

    while(*s1 == *s2)

    {

        if(*s1 == '\0' && *s2 == '\0')

       {

           return 0;

           s1++;

           s2++;

       }

    }

    if(*s1 > *s2)

    {

         return 1;

    }

    if(*s1 < *s2)

    {

        return -1;

    }

 

}

 

 

int main()

{

   

    char str[100] = "abcdefg";

    char *ptr = "hello world";

    int ret = my_strcmp(str,ptr);

    printf("str = %s\n",str);

    printf("ret = %d\n",ret);

 

 

    #if 0

    int len;//定义自己的strncat

    char str[100] = "view";

    char *ptr = "hello world";

    char *tmp = my_strncat(str,ptr,5);

    printf("str = %s\n",str);

    printf("tmp = %s\n",tmp);

    #endif

 

    #if 0

    char *tmp = my_strcat(str,ptr);

    printf("str = %s\n",str);

    printf("tmp = %s\n",tmp);

    #endif

 

    #if 0//定义自己的my_strncpy

    char str[100];

    char *ptr = "hello world";

    char *tmp = my_strncpy(str,ptr,5);

    printf("str = %s\n",str);

    printf("tmp = %s\n",tmp);

    #endif

    #if 0//定义自己的my_strcpy

    char *tmp = my_strcpy(str,ptr);

    printf("str = %s\n",str);

    printf("tmp = %s\n",tmp);

    #endif

    return 0;

}

  1. 一维数组:

#include<stdio.h>

#define a[MAX_LIN]

int main()

{

    int i;

    int a[MAX_LIN];

    int *pa = a

    printf("a = %p\n",a);

    for(i = 0;i < len;i++)

    {

        scanf("%d",pa++);

 

    }

    pa = a;

 

    for(i = 0;i < AMX_LIN;i++)

    {

        printf("a[%d] = %d\n",i,*(pa + i));//a[i] = *(a + i)

 

    }

    return 0;

}

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值