gpt4 book ai didi

c - while循环在for循环之后不执行

转载 作者:行者123 更新时间:2023-11-30 19:20:45 25 4
gpt4 key购买 nike

我正在学习 C 编程方法,我有一个关于结尾循环的问题。我正在使用linux debian来编译。

这是代码。

#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 循环。

有什么想法吗?

谢谢

最佳答案

你执行这个

s1[i] = '\0';

当 i = 0 时,所以 while 条件

while (s1[i] != '\0') { ...

为 false,并且您永远不会执行循环。

关于c - while循环在for循环之后不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com