1.实现strcat、strcmp函数
#include <stdio.h>
#include <string.h>
char *mystrcat(char *str1,char *str2)
{
int len = strlen(str1);
int i;
for(i=0;*(str2+i)!=0;i++)
{
*(str1+len+i) = *(str2+i);
}
*(str1+len+i) = 0;
return str1;
}
int main(int argc, const char *argv[])
{
char arr[30]="";
char brr[30]="";
gets(arr);
gets(brr);
mystrcat(arr,brr);
puts(arr);
return 0;
}
#include <stdio.h>
#include <string.h>
int mystrcmp(char *str1,char *str2)
{
int result = 0;
while(*str1!=0 ||*str2!=0)
{
if(*str1!=*str2)
{
result = *str1-*str2;
break;
}
str1++;
str2++;
}
return result;
}
int main(int argc, const char *argv[])
{
char arr[30]="";
char brr[30]="";
int result;
gets(arr);
gets(brr);
result = mystrcmp(arr,brr);
printf("%d\n",result);
return 0;
}
2. 复习指针数组、数组指针和分文件编译内容
1.指针数组:本质是一个存放指针变量(地址)的数组,形式为:int *parr[3]={pa,pb,pc};parr[0]即为pa,parr[1]为pb;parr[2]为pc。*parr[0]就是取指针变量pa所指向的内容。parr为该指针数组的首地址,即*parr=pa;
2.数组指针:本质是一个指向整个数组的指针,形式为:int (*parr)[]=&arr;一般和二维数组联系在一起,parr偏移一位(parr+1)相当于二维数组里偏移一行,[]内的数组容量一般为二维数组的列数。
3.分文件编译:将功能函数、主函数分开,分2个文件。
将函数、函数声明单独出来,放在分别的.c 文件 将函数声明放在.h文件 .h文件是 头文件
注意:功能函数内不能有主函数 所有的.c文件 需要进行一起编译。
步骤:1.编写好的功能函数.c文件 (无主函数、函数声明) 2.一起编译 gcc main.c fun.c