};
return0;
}
/*********自编strcpy库函数**********/
#include<>
voidstrcopy(char*str1,char*str2);
intmain(void)
{char*str1,*str2;
printf("Pleaseintputstr1andstr2:
");
scanf("%s%s",str1,str2);
strcopy(str1,str2);
printf("%s\n%s\n",str1,str2);
return0;
}
voidstrcopy(char*str1,char*str2)
{
while((*str1++=*str2++)!
='\0');
}
/*******自编库函数strlen********/
#include<>
intstrlen1(char*str);
intmain(void)
{intn=0;
char*str1;
printf("Pleaseinputstring:
");
scanf("%s",str1);
n=strlen1(str1);
printf("%d\n",n);
return0;
}
intstrlen1(char*str)
{char*i;
for(i=str;*i;i++);
returni-str;
}
/***********自编库函数strcmp*********/
#include<>
intstrcmp1(char*str1,char*str2);
intmain(void)
{char*str1,*str2;intsum;
printf("Pleaseinputstring1andstring2:
");
scanf("%s%s",str1,str2);
sum=strcmp1(str1,str2);
printf("%d\n",sum);
return0;
}
intstrcmp1(char*str1,char*str2)
{for(;*str1==*str2;str1++,str2++)
if(*str1=='\0')return0;
return*str1-*str2;
}
/*******经典字符转数子******/
#include<>
intmain(void)
{
inti,j=0,k=1;
chara[10],*s;
s=a;
printf("Pleaseinput:
");
scanf("%9s",a);
if(*s=='-')
{
k=-1;
s++;
}
while(*s)
{
i=*s-'0';
j=j*10+i;
s++;
}
printf("%d\n",j*k);
return0;
}
/*****自编内存分配函数******/
/*********仿malloc函数******/
#include<>
#defineNUL0
#defineALLOSIZE100
staticallocb[ALLOSIZE];
static*allocp=allocb;
char*alloc(intn)
{
if(n>0&&allocp+n<=allocb+ALLOSIZE)
{
allocp+=n;
return(char*)(allocp-n);
}
else
return(char*)NUL;
}
intmain(void)
{
int*p=(int*)alloc(sizeof(int));
*p=100;
printf("%d:
%d\n",p,*p);
return0;
}
/**动态定义一维整形数组**/
#include<>
#include<>
intinit(int**block,intsiz)
{
int*aux;
if((aux=(int*)malloc(siz*sizeof(int)))==NULL)
return0;
printf("Enter%dintegerValues:
",siz);
*block=aux;
while(siz--)
{
scanf("%d",aux++);
}
return1;
}
intmain(void)
{
int*arr,i,size;
printf("Arraysize:
");
scanf("%d",&size);
if(!
init(&arr,size))
{
printf("Cannotallocatememory\n");
return0;
}
else
for(i=0;iprintf("%d\n",arr[i]);
return0;
}
/**动态定义一维数组+动态内存分配**/
#include<>
#defineNUL0
#defineALLOCSIZE100
char*alloc(intn);
intinit(int**block,intsize);
staticallocb[ALLOCSIZE];
static*allocp=allocb;
intmain(void)
{
int*arr,size,i;
printf("Arraysize:
");
scanf("%d",&size);
if(!
init(&arr,size))
{
printf("Cannotallocatememory\n");
return1;
}
else
{
for(i=0;iprintf("%d\n",arr[i]);
return0;
}
}
char*alloc(intn)
{
if(n>0&&allocp+(n-1)<=allocb+(ALLOCSIZE-1))
{
allocp+=n;
return(char*)allocp-n;
}
else
returnNUL;
}
intinit(int**block,intsize)
{
int*aux;
if((aux=(int*)alloc(size*sizeof(int)))==NUL)
return0;
else
{
*block=aux;
printf("Enter%dintegervalues:
",size);
while(size--)
{
scanf("%d",aux++);
}
return1;
}
}
/**动态定义二维数组+动态内存分配**/
#include<>
#defineALLOCSIZE200
#defineNUL0
staticallocb[ALLOCSIZE];
static*allocp=allocb;
char*alloc(intn)
{
if(n>0&&allocp+(n-1)<=allocb+(ALLOCSIZE-1))
{
allocp+=n;
return(char*)allocp-n;
}
else
returnNUL;
}
int**cas(intr,intc)
{
int**x,i;
x=(int**)alloc(sizeof(int)*r);
for(i=0;ix[i]=(int*)alloc(sizeof(int));
returnx;
}
intmain(void)
{
int**p,i,j,r,c;
printf("Arrayrowsandcols:
");
scanf("%d%d",&r,&c);
p=cas(r,c);
printf("Enter%dintegervalues:
",c*r);
for(i=0;ifor(j=0;jscanf("%d",&p[i][j]);
for(i=0;ifor(j=0;jprintf("%d\n",p[i][j]);
return0;
}
/*******4x4矩阵转置输出*******/
#include<>
intmain(void)
{
inta[4][4],i,j,t;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)printf("%4d",a[i][j]);
printf("\n");
}
for(i=1;i<4;i++)
for(j=0;j
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
printf("==================\n");
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)printf("%4d",a[i][j]);
printf("\n");
}
return0;
}
/***********判断月份**********/
#include<>
intmain(void)
{
charmonth[][14]={"IllegalMonth",
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"};
inti;
for(;;)
{
printf("Pleaseinput:
");
scanf("%d",&i);
printf("%s\n",i>=1&&i<=12?
month[i]:
month[0]);
}
return0;
}
/**********************************/
/*输入年和本年第几天利用指针计算月份*/
/**********************************/
#include<>
voidmonthday(intyear,intyearday,int*pmonth,int*pday);
intmain(void)
{
intyear,yearday,day,month;
printf("Pleaseinput:
");
scanf("%d%d",&year,&yearday);
monthday(year,yearday,&month,&day);
printf("%d%d%d",year,month,day);
return0;
}
voidmonthday(intyear,intyearday,int*pmonth,int*pday)
{
inti,j,q,day_tab[][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
j=((year%4==0&&year%100!
=0)||year%400==0);
for(i=0;yearday>(q=*(*(day_tab+j)+i));i++)yearday-=q;
*pmonth=i;
*pday=yearday;
}
/******输入年月日计算距其多少天******/
#include<>
intday_of_year(intyear,intmonth,intday);
intmain(void)
{
intyear,month,day,k;
printf("Pleaseinput:
");
scanf("%d%d%d",&year,&month,&day);
k=day_of_year(year,month,day);
printf("%d\n",k);
return0;
}
intday_of_year(intyear,intmonth,intday)
{
inti,j=0,day_tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
j=((year%4==0&&year%100!
=0)||year%400==0);
for(i=1;iday=day+day_tab[j][i];
returnday;
}
/**********************************/
#include<>
intmonthday(int(*day_tab)[13],intyear,intmonth,intday);
intmain(void)
{
intday_tab[][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}},year,day,month,k;
printf("Pleaseinput:
");
scanf("%d%d%d",&year,&month,&day);
k=monthday(day_tab,year,month,day);
printf("%d\n",k);
return0;
}
int