明显是把'0'和'\0'弄混了,他们不是一样的。


在 Sat, 23 Jun 2012 05:55:00 +0800,himemei...@gmail.com <himemei...@gmail.com> 写道:

char buf[10];
short i;

for(i=0;i<5;++i)
    buf[8-i]=buf[i];
for(i=9;buf[i-1]=='0' && i>4;--i);
buf[i]=0;
puts(buf);

这样的话会输出一些乱七八糟的东西……
0是结尾,对伐
0=='\0',对伐

buf[i+1]=0; 这样就完全没有问题……
但是需要在前面那个地方结束字符串啊啊啊啊阿……

最后折腾了一晚上,用别的方法拐着弯解决了,但是这个地方完全不能理解为什么……

ubuntu 12.04
g++ 4.6.3



--
使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/
--
ubuntu-zh mailing list
ubuntu-zh@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh

回复