1.使用指针实现字符串拷贝
void MyStrcpy(char *p,char *q)
1 #include<stdio.h>
2 #include<string.h>
3 void MyStrcpy(char *p,char *q)
4 {
5 int i;
6 int n=strlen(p);
7 for(i=0;i<n;i++)
8 *(q+i)=*(p+i);
9 }
10 int main(int argc, const char *argv[])
11 {
12 char a[20]="";
13 char b[20]="";
14 printf("请输入一串字符串:\n");
15 scanf("%s",a);
16 MyStrcpy(a,b);
17 printf("%s\n",b);
18 return 0;
19 }
![](https://i-blog.csdnimg.cn/blog_migrate/21298fe9c9b184886e45fad624baf191.png)
2.使用指针实现字符串比较
Void MyStrcmp(char *p,char *q)
1 #include<stdio.h>
2 #include<string.h>
3 void MyStrcmp(char*p,char*q)
4 {
5 int i=0,j=0,cha;
6 while(*(p+i)==*(q+j))
7 {
8 if(*(p+i)=='\0'&&*(q+j)=='\0')
9 {
10 break;
11 }
12 else
13 {
14 i++;j++;
15 }
16 }
17 cha=(*(p+i)-*(q+j));
18 if(cha>0)
19 printf("大于\n");
20 else if(cha<0)
21 printf("小于\n");
22 else if(cha==0)
23 printf("等于\n");
24 }
25 int main(int argc, const char *argv[])
26 {
27 char a[20]="";
28 char b[20]="";
29 printf("请输入一串字符串:\n");
30 scanf("%s",a);
31 printf("请输入要比较的字符串:\n");
32 scanf("%s",b);
33 MyStrcmp(a,b);
34 return 0;
35 }
![](https://i-blog.csdnimg.cn/blog_migrate/6b2a3adec499e52fc67dc330ca167844.png)
3.使用指针实现计算单词的个数,返回单词的个数
Char str[]=”hello my student”
输出有3个字符串
Int StrNum(char *p)
1 #include<stdio.h>
2 #include<string.h>
3 int StrNum(char *p)
4 {
5 int sum=0,i=0;
6 while(*(p+i)!='\0')
7 {
8 if(*(p+i)!=' '&&*(p+i+1)==' ')
9 sum=sum+1;
10 if(*(p+i)!=' '&&*(p+i+1)=='\0')
11 sum=sum+1;
12 i++;
13 }
14 return sum;
15 }
16 int main(int argc, const char *argv[])
17 {
18 char str[50]="";
19 printf("请输入一串字符串:");
20 gets(str);
21 int sum=StrNum(str);
22 printf("单词个数为:%d\n",sum);
23 return 0;
24 }
![](https://i-blog.csdnimg.cn/blog_migrate/be71417c362c1245dfce62921285b713.png)