所以我说1+1在算错的情况下不等于2么。
楼主你的程序是错误的。
首先整理一下你的代码:
int Counts(char *str_p,char *str_s,int len_p,int len_s)
{
int i,j,k,flag,counts=0;
flag=len_s-len_p;
for(i=-1;i<flag;)
{
i++;
j=i;
k=0;
while(str_s[j]==str_p[k]) // 注意这里,没有判断字符串结束的结束条件,k<len_p
{
if(k==len_p-1) // 还有这里,如果你的len_p为字符串的长度,那么这里少判断了最后一个字符。姑且当你的len_p为字符串占用空间的大小好了...
{
counts++;
break;
}
j++; //原来这里的else是没有必要的,因为if条件满足时有break
k++;
}
} // 这里原来少一个花括号的,不过去掉了 "else{" 之后就刚刚好...
return counts;
}
楼主煞费苦心,难道只为了让我们帮你改一个程序?还是真的有奇妙的不可理解的现象存在?想起候老大的那句:源码之前,了无秘密...看来说得非常有道理。
我这里完全说错了...不要理会我的胡言乱语...
[此贴子已经被作者于2005-2-25 22:24:05编辑过]