- 注册时间
- 2004-8-29
- 最后登录
- 1970-1-1
|
发表于 2005-8-31 10:22:00
|
显示全部楼层
以下是引用syzhyl在2005-8-30 12:49:00的发言:[BR]void main()
{
memcpy(htt,ht+8,strlen(ht)-8);
strcpy(ht,htt);
ht[strlen(ht)]=0;
}
我为什么会得不到预期的结果?
比如ht[]="1234567890"
运行后应该得ht[]="90";可我得不到
这两句有问题。
strcpy(ht,htt);
htt 中的0不一定就在“90”后。。。(注意:字符串是以0结尾)
ht[strlen(ht)]=0
同上,strlen(ht)得到的未必就是2。
事实上,整个代码用一句就可解决:
memmove(ht,ht+8,strlen(ht)-7); |
|