ошибка
#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. Есть ли для этого особая причина?