专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

关于while和if的有关问题

发布时间:2011-06-28 16:15:38 文章来源:www.iduyao.cn 采编人员:星星草
关于while和if的问题
我写了一个strncpy的函数
char *strncpy(char *dest,const char *src,size_t n)
{
  char *pdest = dest;
  while(n--){
  while(*pdest++ = *src++)
  {
  ;
  }
  }
  return dest;
}
请问为什么编译不通过,而第二个while改成if就可以,求大神给个详细解释,菜鸟请教

------解决方案--------------------
探讨
引用:
编译通不过?你用的什么编译器?
程序语法上没问题的

说错了,编译可以通过,但得不到我要的结果,拷贝字符串

------解决方案--------------------
[code=C/C++][/code]char *strncpy(char *dest,const char *src,size_t n)
{
char *pdest = dest;
while(n--){
while(*pdest++ = *src++) //执行n次, src拷贝n回,pdest情何以堪
{
;
}
}
return dest;
}
编译通过不通过没有测试,但是你写的这个拷贝涵数,逻辑是错误的. 即使编译通过,也会造成错误.
------解决方案--------------------
C/C++ code

char *strncpy(char *dest,const char *src,size_t n)
{
    char *pdest = dest;
    while(n--){//没必要两层循环
            *pdest++ = *src++;
    }
    *pdest='\0';//字符串要以'\0'结尾
    return dest;
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: