例10.18将字符串a复制为字符串b。
main()
{char a[]="i am a boy.",b[20];
int i;
for(i=0;*(a+i)!=′\0′;i++)
  *(b+i)=*(a+i);
*(b+i)=′\0′;
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!=′\0′;i++)
  printf("%c",b[i]);
printf("\n");
 }
程序运行结果为:
string a is:I am a Boy.
string b is:I am a Boy.
程序中a和b都定义为字符数组,可以通过地址访问数组元素。在for语句中,先检查a[i]是否为‘\0’(今a[i]是以*(a+i)形式表示的)。如果不等于‘\0’,表示字符串尚未处理完,就将a[i]的值赋给B[i],即复制一个字符。在for循环中将a串全部复制给了B串。最后还应将‘\ 0’复制过去,故有(B+i)=′\0′;此时i的值是字符串有效字符的个数n加1。第二个for循环中用下标法表示一个数组元素(即一个字符)。
也可以设指针变量,用它的值的改变来指向字符串中的不同的字符。