程序内容如下:
1 #include<stdio.h>
2 void main()
3 {
4 char*ps="I am a student";
5 ps=ps+7;
6 printf("%s\n",ps);
7 }
程序结果如图7.26所示:
图7.26 例7.20程序结果图
【例题中关键问题说明】
在程序对ps初始化时,即把字符串首地址赋予ps,当“ps=ps+7”之后,p指向字符“s”,因此输出为“student”。
【例7.21】用指针变量处理字符串的复制。
程序内容如下:
1 #include<stdio.h>
2 void main()
3 {
4 char a[10],b[10];
5 char*pa,*pb;
6 pa=a;
7 pb=b;
8 printf("请输入一个字符串:");
9 scanf("%s",pa);
10 printf("a:%s\n",a);
11 while((*pb=*pa)!=′\0′)
12 {
13 pa++;
14 pb++;
15 }
16 printf("b:%s\n",b);(www.xing528.com)
17 }
程序结果如图7.27所示:
图7.27 例7.21程序结果图
【例题中关键问题说明】
(1)程序中同时定义两个数组a、b和两个指针pa、pb,然后使两个指针pa和pb分别指向两个字符数组的首地址。
(2)利用循环依次将*pa复制到*pb,直到*pa的内容为′\0′(字符串结束符)为止。
【例7.22】在一行字符串中删去指定的字符。
程序内容如下:
1 #include<stdio.h>
2 #include<string.h>
3 void main()
4 {
5 char s[]="I have 150 Yuan!!",*p=s;
6 int i,j;
7 for(i=0;i<strlen(s);i++,p++)
8 if(*p==′0′)
9 for(j=i+1;j<strlen(s);p++,j++)
10 *p=*(p+1);
11 printf("%s\n",s);
12 }
程序结果如图7.28所示:
图7.28 例7.22程序结果图
【例题中关键问题说明】
(1)第5行定义了一个字符型数组和指针变量p,同时是指着变量p指向数组。
(2)第7行通过循环使得指针变量p依次指向数组的每一个元素。
(3)第8、9、10行表示当指针变量p指向0字符时,指针变量p直接指向0字符的下一个元素。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。