作业1:
作业要求:
用函数封装字符串函数:strlen、strcmp、strcpy、strcat。
运行代码:
1.函数声明
#include<stdio.h>
#include<string.h>
//封装字符串函数
int mystrlen(char *s); //求长度
int mystrcmp(char *s1,char *s2); //比较
char *mystrcpy(char *dest,char *src);//复制
char *mystrcat(char *dest,char *src);//拼接
void print(int len,int result,char *pa,char *pb);//打印结果
void scan(char *pa,char *pb,char *pc);//字符串输入
2.1 封装strlen
int mystrlen(char *s) //求长度
{
int len = 0;
while(*s!='\0')
{
len++;
s++;
}
return len;
}
2.2 封装strcmp
int mystrcmp(char *s1,char *s2) //比较
{
int result = 0;
while((*s1 != 0) || (*s2 != 0))
{
if(*s1 != *s2)
{
result = *s1 - *s2;
break;
}
s1++;
s2++;
}
return result;
}
2.3 封装strcpy
char *mystrcpy(char *dest,char *src)//复制
{
int i = 0;
while(*src != 0)
{
dest[i++] = *src++;
}
dest[i] = 0;
return dest;
2.4 封装strcat
char *mystrcat(char *dest,char *src)//拼接
{
int len1 = mystrlen(dest);
int len2 = mystrlen(src);
int i;
for(i = 0;i<=len2;i++)
{
dest[i+len1] = src[i];
}
return dest;
}
2.5 输入及输出
void scan(char *pa,char *pb,char *pc)
{
printf("请输入字符串:\n");
printf("arr>>>");
gets(pa);
printf("brr>>>");
gets(pb);
printf("crr>>>");
gets(pc);
}
void print(int len,int result,char *pa,char *pb)
{
printf("len_arr = %d\n",len);
printf("arr与brr比较结果>>>%d\n",result);
printf("crr拷贝到arr>>>%s\n",pa);
printf("crr连接到brr>>>%s\n",pb);
}
3.主函数main
int main(int argc, const char *argv[])
{
char arr[30] = "";
char brr[30] = "";
char crr[30] = "";
int result = 0;
int len = 0;
scan(arr,brr,crr);
len = mystrlen(arr); //arr的长度
result = mystrcmp(arr,brr); //arr与brr比较
mystrcpy(arr,crr); //将crr拷贝到arr
mystrcat(brr,crr); //将crr连接到brr
print(len,result,arr,brr);
return 0;
}
运行结果:
作业2:
作业要求:
用函数递归输出指定长度的斐波那契数列。
运行代码:
#include<stdio.h>
#include<string.h>
void print(int *pa,int len);
void print(int *pa,int len)
{
while(len--)
{
printf("%d ",*pa++);
}
putchar(10);
}
int fbnq(int *pa,int len)
{
int i;
if(len>2)
{
*(pa+2) = *pa + *(pa+1);
len--;
pa++;
return fbnq(pa,len);
}
else if(2 == len)
{
return 1;
}
}
int main(int argc, const char *argv[])
{
//斐波那契序列
int arr[100] = {1,1};
int len = 20; //长度为20
fbnq(arr,len);
print(arr,len);
return 0;
}