我正在学习C编程方法,我有一个关于循环的问题。 我正在使用linux debian进行编译。while循环在for循环后不执行
这里是代码。
#include <stdio.h>
int main()
{
char s1[] = "abcdef";
char s2[] = "aaaaaa";
int i, j;
printf("\ndebut:%s\n", s1);
for (i = j = 0; s1[i] != '\0'; ++i, ++j){
if (s1[i] == s2[j]){
printf("before %c\n", s1[i]);
s1[i] = '\0';
}
else if (s1[i] != s2[j]){
s1[i] = s1[i];
printf("after copy %c\n", s1[i]);
}
}
printf("\nEnd of for loop write final result\n.");
i = j = 0;
while (s1[i] != '\0'){
printf("final is :%c ", s1[i]);
++i;
}
return 0;
}
这段代码假设一开始信删除一个字母“a”在我的例子,然后,while循环会通每个位置打印结果。
它看起来像第一部分工作,但while循环永远不会被程序执行。
有什么想法为什么?
谢谢
那么,你的循环条件评估为false。所以有时间倾斜如何使用调试器并检查变量。 – OldProgrammer
空字符表示字符串在该位置结束,而不是它应该被视为跳过字符。我不确定你的代码是否假设。 – Jems
这个问题似乎是无关紧要的,因为它没有显示任何调试尝试。 – 2014-01-26 21:22:40