读书人

关于strcpy 大家帮忙看看while循环

发布时间: 2012-03-21 13:33:14 作者: rapoo

关于strcpy, 大家帮忙看看while循环,为什么可以正确的跳出, 而不是无限循环下去
一个下面的strcpy,

char* mystrcpy(char *pDest, const char* pSrc) //
{
char* tmp = pDest;
while(*pDest++ = *pSrc++)
;
return tmp; //
}

void main()
{
const char* pTest = "111 ";
char pDest[128];
mystrcpy(pDest, pTest);

}

大家帮忙看看while循环,为什么可以正确的跳出, 而不是无限循环下去

[解决办法]
pSrc遇到束符‘\0’

此while()里面的值就是0了。

自然就跳出循了
[解决办法]
LS 正解
[解决办法]
while(statement)
statement结果不为0就执行,为0则跳出
[解决办法]
利用的是C串的特性
[解决办法]
'\0 '
[解决办法]
应该是这样的
while(*pDest++ = *pSrc++)
首先*pDest++ = *pSrc++,再将*pDest作为测试条件,当*pDest= '\0 '的时候退出循环
[解决办法]
都对
[解决办法]
ls都说了, 不过这个代码写得有点危险.

读书人网 >C++

热点推荐