今日学习任务
| 1、熟练掌握数组的使用;(1-3 数组名的作用,数组的使用) 2、熟练特殊数组的使用;(指针数组、函数指针数组等) 3、熟练掌握右左法则的使用;(复杂定义声明解释) |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) |
通过函数名找到函数的入口地址
传地址:当修改了实参变量值时;传实参变量对应的地址空间 三、数组
|
今日开发中出现的问题汇总
| 对数组的对应内存空间和对空内存空间的地址关系,在多维数字中不易理解
|
自我评价
(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)
| 了解了函数的使用方法;如何使子函数返回多个值。 |
自编 strlen();strcopy();strncopy();strcat;strncat;strcmp和cstrncmp函数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int my_strcmp(char *s1,char *s2)
{
int ret = 0;
while((*s1 != '\0') && (*s2 != '\0'))
{
while((*s1 == *s2))
{
s1++;
s2++;
if((*s1 == '\0') || (*s2 == '\0'))
{
return 0;
}
}
if(*s1 > *s2)
{
return 1;
}
if(*s1 < *s2)
{
return -1;
}
}
}
int main()
{
char *str = "hellz";
char *ptr = "hello world";
int result = my_strcmp(str,ptr);
printf("result = %d\n",result);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN sizeof(char)*100
#if 0
char * my_strcopy(char *ptr,char *str)
{
char * s_tmp = str;
char * p_tmp = ptr;
while(*p_tmp != '\0')
{
*s_tmp = *p_tmp;
p_tmp++;
s_tmp++;
}
s_tmp = '\0';
return str;
}
char * my_strncopy(char *ptr,char *str,int n)
{
int i;
char * s_tmp = str;
char * p_tmp = ptr;
for(i = 0;i < n;i++)
{
*(s_tmp + i) = *(p_tmp + i);
}
*(s_tmp + i) = '\0';
return str;
}
#endif
char * my_strcat(char *ptr1,char *ptr2)
{
char * cat = (char *)malloc(MAX_LEN);
//char *cat_tmp = cat;
//char * ptr1_tmp = ptr1;
int len1 = 0;
int len2 = 0;
while(*ptr1 != '\0')
{
*cat = *ptr1;
cat++;
ptr1++;
len1++;
}
while(*ptr2 != '\0')
{
*cat = *ptr2;
cat++;
ptr2++;
len2++;
}
*cat = '\0';
cat = cat - len1 -len2;
return cat;
}
char * my_strncat(char *ptr1,char *ptr2,int n)
{
char * cat = (char *)malloc(MAX_LEN);
//char *cat_tmp = cat;
//char * ptr1_tmp = ptr1;
int i;
int len1 = 0;
while(*ptr1 != '\0')
{
*cat = *ptr1;
cat++;
ptr1++;
len1++;
}
for(i = 0;i < n;i++)
{
*cat = *ptr2;
cat++;
ptr2++;
}
*cat = '\0';
cat = cat - len1 -n;
return cat;
}
int main()
{
int n = 3;
char * ptr1 = (char *)malloc(MAX_LEN);
char * ptr2 = (char *)malloc(MAX_LEN);
char * str = (char *)malloc(MAX_LEN);
ptr1 = "hello";
ptr2 = "world";
//printf("strncopy = %s\n",my_strncopy(ptr1,ptr2,n));
//printf("str = %s\n",my_strcopy(ptr1,str));
printf("strcat = %s\n",my_strcat(ptr1,ptr2));
printf("strncat = %s\n",my_strncat(ptr1,ptr2,n));
return 0;
}
#include <stdio.h>
//typedef signed int Int;
void exchange(int *number1,int *number2)
{
int *number;
*number1 = (*number1) ^ (*number2);
*number2 = (*number1) ^ (*number2);
*number1 = (*number1) ^ (*number2);
}
int main()
{
int number1;
int number2;
printf("输入两个数交换数值\n");
printf("请输入数值 1 :");
scanf("%d",&number1);
printf("请输入数值 2:");
scanf("%d",&number2);
exchange(&number1,&number2);
printf("number1 = %d\n",number1);
printf("number2 = %d\n",number2);
return 0;
}
11