C语言的那些小秘密之指针(三)

发表于:2011-9-27 10:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:bigloomy(CSDNblog)    来源:51Testing软件测试网采编

分享:

  在此也给出我的另外一种实现方式:

#include <stdio.h>

void copy_string(char from[],char to[])
{
 int i=0;
 while((to[i]=from[i++])!='\0'){
  ;
 }
 
 return ;
}

int main()
{
 char str[]="this is a string!";
 printf("%s\n",str);
 char dec_str[206];
 copy_string(str,dec_str);
 printf("%s\n",dec_str);
 return 0;
}

  运行结果为:

  值得注意的是这种实现方式的中的巧妙的利用了while语句while((to[i]=from[i++])!='\0')。千万不要写成 while((to[i++]=from[i++])!='\0'),这样的话每次执行判断语句是i++被执行了两次,导致最终的结果出错。

  二、用字符指针变量

#include <stdio.h>

void copy_string(char *from,char *to)
{
 int i=0;
 while(*from!='\0')
  *to++=*from++;
  *to='\0';
  
 return ;
}

int main()
{
 char str[]="this is a string!";
 printf("%s\n",str);
 char dec_str[206];
 copy_string(str,dec_str);
 printf("%s\n",dec_str);
 return 0;
}

  运行结果为:

42/4<1234>
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号