原帖由 恋夏寒 于 2008-8-27 11:43 发表
第10行的判断:
1. if (s1==s2) 结果: 1 0 0
2. if (s1==s2) 结果 1 0 1
3. if (s1=='\0' && s2=='\0') 结果 1 0 1
4. if (s1==s2=='\0') 结果 0 1 1 ----->>>> 似乎这个条件才能得出想要的 ...
原帖由 bood 于 2008-8-27 11:22 发表
还有行号,就不帮你测试了……
怀疑这句有问题:
s1==s2=='\0'
相当于(s1==s2)=='\0',第二次比较都是将一个bool与一'\0'比较,而'\0'是false吧?
原帖由 fera 于 2008-8-29 14:09 发表
如果只用equalstring()的话,这说明你的函数设计不好,通用性差。用strcmp:
bool StringCompare(const char * s1, const char * s2)
{
while (*s1++ !=*s2++)
return *s1 - *s2;
}
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |