为什么同样是判断条件,结果却不相同
程序代码:
#include<stdio.h> int main() { char buf[]=" 312313131"; // puts(buf); int count = 0; for(int i=0;buf[i];i++) //判断空格数 { if(buf[i] == ' ') count += 1; } printf("%d\n",count); int q = 0; for(q=count;buf[q];q++) //删除空格 { buf[q-count]=buf[q]; /*if(buf[q] == 0) // 结束符 { break; } */ } printf("\nq=%d\n",q); printf("%s",buf); return 0 ; }
这个是楼主写的代码,然后发现了问题。 在 删除空格的函数里面
程序代码:
for(q=count;buf[q];q++) //删除空格 { buf[q-count]=buf[q]; }这个结果是错误的, 我不知道为什么
程序代码:
for(q=count;;q++) //删除空格 { buf[q-count]=buf[q]; if(buf[q] == 0) // 结束符 { break; } }这个是正确的
我感觉这两个判断条件是一样的啊? 为什么第一个会出错呢