gpt4 book ai didi

c - 控制变量的位置对循环体的影响

转载 作者:行者123 更新时间:2023-12-04 10:38:08 24 4
gpt4 key购买 nike

错误

#include<stdio.h>
#include<string.h>

int main(void)
{
char *str = " H el l o, Wor ld ";
char del_space[256] = "\0";
printf("%s\n",str);
for (size_t i = 0;str[i] != '\0';++i)
{
size_t j = 0;
if (str[i] != ' ')
{
del_space[j] = str[i];
++j;
}
}
printf("%s",del_space);
return 0;
}

正确的
#include<stdio.h>
#include<string.h>

int main(void)
{
char *str = " H el l o, Wor ld ";
char del_space[256] = "\0";
printf("%s\n",str);
for (size_t i = 0,j = 0;str[i] != '\0';++i)
{
if (str[i] != ' ')
{
del_space[j] = str[i];
++j;
}
}
printf("%s",del_space);
return 0;
}

为什么第一种方式错,第二种方式正确?我只是移动了一个控制变量的位置,但是第一种方式的del_space的值是错误的?我使用的编译器是 GCC8.2.3 。这有什么特殊原因吗?

最佳答案

第一套j = 0每次通过循环。第二只套j=0一次 - 第一次通过循环。

关于c - 控制变量的位置对循环体的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60067905/

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