例8.18 将字符串a复制为字符串b,然后输出字符串b。

解题思路:定义两个字符数组a和b,用“I am a student.”对a数组初始化。将a数组中的字符逐个复制到b数组中。可以用不同的方法引用并输出字符数组元素,今用地址法算出各元素的值。

#include <stdio.h>
int main()
 {char a[ ]="I am a student.",b[20];
  int i;
  for(i=0;*(a+i)!='\0';i++)
     *(b+i)=*(a+i);                  //将a[i]的值赋给b[i]
  *(b+i)='\0';                       //在b数组的有效字符之后加'\n'
  printf("string a is:%s\n",a);      //输出a数组中全部字符
  printf("string b is:");
  for(i=0;b[i]!='\0';i++)
    printf("%c",b[i]);               //逐个输出b数组中全部字符
  printf("\n");
  return 0;
 }

用指针变量来处理例8.18问题。
解题思路:定义两个指针变量p1和p2,分别指向字符数组a和b。改变指针变量p1和p2的值,使它们顺序指向数组中的各元素,进行对应元素的复制。
#include <stdio.h>
int main()
 {char a[]="I am a boy.",b[20],*p1,*p2;
  p1=a;p2=b;                                   // p1,p2分别指向a数组和b数组中的第一个元素
  for(;*p1!='\0';p1++,p2++)
     *p2=*p1;                                  // 将p1所指向的元素的值赋给p2所指向的元素
  *p2='\0';                                    // 在复制完全部有效字符后加'\0'
  printf("string a is:%s\n",a);                // 输出a数组中的字符
  printf("string b is:%s\n",b);                // 输出b数组中的字符
  return 0;
}


  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值