/*编写一个名为addarrays()的函数,它接受三个长度相同的数组,把两个数组中对应的元素相加,放到第三个数组当中。*
#include <stdio.h>
#include <string.h>
int *addarrays(int *buffA,int *buffB,int *buffC,int num)
{
int *head= buffC;
int i;
for(i=0;i<num;i++)
{
*buffC=*buffB+*buffA;
buffC++;
buffB++;
buffA++;
}
return head;
}
int main()
{
int buffA[128],buffB[128],buffC[128];
int i,a=0,b=0;
printf("输入数组A中5个数值:");
for(i=0;i<5;i++)
{
scanf("%d",buffA+i);
}
printf("输入数组B中5个数值:");
for(i=0;i<5;i++)
{
scanf("%d",buffB+i);
}
int *p=NULL;
p=addarrays(buffA,buffB,buffC,5);
printf("合并的BUFF为:");
for(i=0;i<5;i++)
{
printf("%d ",*(p+i));
}
}
/*编译结果:
输入数组A中5个数值:1 2 3 4 5
输入数组B中5个数值:2 3 4 5 6
合并的BUFF为:3 5 7 9 11
*/
/*写一个子函数:实现交换两个整形变量的数据。*/
#include <stdio.h>
#include <string.h>
/*
void fun0(int *a,int *b)
{
int *p=NULL;
p=a;
a=b;
b=p;
}*/
void fun(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
int main()
{
int a,b;
printf("输入a,b的值:");
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
/*编译结果:
输入a,b的值:1 2
a=2,b=1
*/
/*总结:
fun0方法只是改变了形参a,b的指向。没有改变a,b的值
*/
/*编写一个程序,输入今天是该星期第几天,输出该星期的英文名。用指针数组处理。
星期一monday 二tuesday 三wednesday 四thursday 五friday 六saturday 日Sunday*/
#include <stdio.h>
#include <string.h>
int main()
{
char *buff[128]={"monday","tuesday", "wednesday","thursday","friday","saturday", "Sunday"};
int a;
printf("输入第几天:");
scanf("%d",&a);
printf("%s",buff[a-1]);
}
/*编译结果:
输入第几天:3
wednesday
*/
/*写一个函数,求字符串长度,复制,拼接,对比函数,再不调用库函数的前提下,实现这些功能*/
#include <stdio.h>
#include <string.h>
/***************************
*函数名称:MyStrlen
*函数功能:计算字符串有效长度
*函数返回值:int类型的字符串长度
****************************/
int MyStrlen(char *buff)
{
int len=0;
while(*(buff++)!=0)
{
len++;
}
return len;
}
/*******************************
*函数名称:MyStrcpy
*函数功能:复制字符串
*函数返回值:返回复制好的字符串的地址
********************************/
char *MyStrcpy(char *dest,char *src)
{
char *head = dest;
while(*src!=0)
{
*dest++=*src++;
}
*dest=0;
return head;
}
/*******************************
*函数名称:MyStrcat
*函数功能:字符串拼接
*函数返回值:拼接复制好的字符串的地址
********************************/
char *MyStrcat(char *dest,char *src)
{
char *head = dest;
while(*dest!=0)
{
*dest++;
}
while(*src!=0)
{
*dest++=*src++;
}
*dest=0;
return head;
}
/****************************************
*函数名称:MyStrcmp
*函数功能:字符串对比
*函数返回值:相同返回 0
****************************************/
char *MyStrcmp(char *dest,char *src)
{
int flag=1;
while(*dest!=0)
{
if(*dest++=*src++)
flag=0;
else
{
flag=1;
break;
}
}
if(*src!=0)
{
flag=1;
}
return flag;
}
int main()
{
char buff[128];
char str[]="QWERT";
printf("输入字符串:");
gets(buff);
int len=MyStrlen(buff);
printf("len=%d\n",len);
char *p=MyStrcpy(buff,str);
printf("cpy:buff=%s\n",p);
p=MyStrcat(buff,str);
printf("cat:buff=%s\n",p);
if(MyStrcmp(buff,str)==0)
printf("对比相同!");
else
printf("对比不同!");
}
/*编译结果:
输入字符串:qwe
len=3
cpy:buff=QWERT
cat:buff=QWERTQWERT
对比不同!
*/