1.代码优化
2.mystrcmp、mystrcpy、mystrcat三个函数族封装
(1)mystrcmp(存疑!!!!!)
#include<stdio.h>
#include<string.h>
int mystrcmp(char *s1,char *s2);
int main(int argc, const char *argv[])
{
char s1[30]=" ";
char s2[30]=" ";
int sum=0;
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
sum=mystrcmp(s1,s2);
printf("%d\n",sum);
return 0;
}
int mystrcmp(char *s1,char *s2)
{
char *p1=s1;
char *p2=s2;
int i,sum=0;
int len1=0,len2=0;
while(*p1 != '\0')
{
len1++;
}
while(*p2 != '\0')
{
len2++;
}
if(len1>len2)
{
for(i=0;i<len1;i++)
{
if(*(p1+i) != *(p2+i))
{
sum = *(p1+i)-*(p2+i);
}
}
}
else
{
for(i=0;i<len1;i++)
{
if(*(p1+i) != *(p2+i))
{
sum = *(p1+i)-*(p2+i);
}
}
}
return sum;
}
(2)mystrcpy(将s2复制给s1)
#include<stdio.h>
#include<string.h>
char mystrcpy(char *s1,char *s2);
int main(int argc, const char *argv[])
{
char s1[30]=" ";
char s2[30]=" ";
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
mystrcpy(s1,s2);
gets(s1);
puts(s1);
return 0;
}
char mystrcpy(char *s1,char *s2)
{
char *p1=s1;
char *p2=s2;
while(*p2 != '\0')
{
*p1=*p2;
p1++;
p2++;
}
return *p1;
}
(3)mystrcat(字符串拼接)
#include<stdio.h>
#include<string.h>
char mystrcat(char *s1,char *s2);
int main(int argc, const char *argv[])
{
char s1[30]=" ";
char s2[30]=" ";
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
mystrcat(s1,s2);
puts(s1);
return 0;
}
char mystrcat(char *s1,char *s2)
{
/* char *p1=s1;
char *p2=s2;
int len1=0,len2=0;
for(int i=0;*p1!='\0';i++)
{
len1++;
}
for(int i=0;*p2!='\0';i++)
{
len2++;
}
for(int i=len1;*p2!='\0';i++)
{
*(p1+i)=*p2;
p2++;
}*/
int len1=0,len2=0;
int i,j;
for(i=0;s1[i]!='\0';i++)
{
len1++;
}
for(i=0;s2[i]!='\0';i++)
{
len2++;
}
for(i=len1,j=0;s2[j]!='\0';i++,j++)
{
s1[i]=s2[j];
}
return s1;
}
3.斐波那契数列
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i,num=0;
printf("请输入一个数:");
scanf("%d",&num);
for(i=1;i<=num;i++)
{
printf("%d\t",feibo(i));
}
printf("\n");
return 0;
}
int feibo(int num)
{
if(num == 1 || num ==2)
{
return 1;
}
else if(num >2)
{
return feibo(num-1)+feibo(num-2);
// return (num-1)+(num-2);
}
}