1.实现字符串连接
char *my_strcat(char *dest, char *src)
注意:char * 表示需要返回字符串【称为指针函数】
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *My_strcat(char *s1, char *s2)
{
int i;
for(i=0;*(s1+i)!='\0';i++);
int j;
for(j=0;*(s2+j)!='\0';j++)
{
*(s1+i)=*(s2+j);
i++;
}
*(s1+i)='\0';
return s1;
}
int main(int argc, const char *argv[])
{
int m,n;
printf("m=");
scanf("%d",&m);
printf("n=");
scanf("%d",&n);
char s1[m],s2[n];
printf("输入s1和s2\n");
scanf("%s %s",s1,s2);
char *p=My_strcat(s1,s2);
puts(p);
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/c01673d143d0deb49692d54d1fc0e323.png)
2.实现字符串拷贝
char *my_strcpy(char *dest, char *src)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *My_strcpy(char *s1, char *s2)
{
int i;
for( i=0;*(s2+i)!='\0';i++)
{
*(s1+i)=*(s2+i);
}
*(s1+i)='\0';
return s1;
}
int main(int argc, const char *argv[])
{
int m,n;
printf("m=");
scanf("%d",&m);
printf("n=");
scanf("%d",&n);
char s1[m],s2[n];
printf("输入s1和s2\n");
scanf("%s %s",s1,s2);
char *p=My_strcpy(s1,s2);
puts(p);
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/d66207c71169ad8d8e61a74a137c7878.png)
3.实现杨辉三角
void YangHui( int n, int (*p)[n])
提醒:
arr[i-1][j] ==> *(*(arr+i-1) +j )
arr[i-1][j-1] ===> *( *(arr+i-1) +j-1)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void YangHui(int m, int (*p)[m])
{
int i=0,j=0;
for(i=0;i<m;i++){
for(j=0;j<=i;j++){
if(j==0 || i==j)
*(*(p+i)+j)=1;
else
*(*(p+i)+j)=*(*(p+i-1)+j)+*(*(p+i-1)+j-1);
printf("%d\t",*(*(p+i)+j));
}
printf("\n");
}
}
int main(int argc, const char *argv[])
{
int m;
printf("输入杨辉三角的行数:\n");
scanf("%d",&m);
int a[m][m];
YangHui(m,a);
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/1e3437f4ca6cd23d50b66c528f87a256.png)