Значение выражения
while(s[len] != '\0');
равно
while (s[len] != '\0') {
}
Таким образом, в вашем случае выражение
while (s[len] != '\0');
len++;
будет расширено до
while (s[len] != '\0') {
}
len++;
, что неверно, исходя из логики c.
Оператор len++;
должен входить в условие while.
Так что вы можете использовать как ниже
while (s[len] != '\0')
len++;
или
while (s[len] != '\0') {
len++;
}
Итак, я вставляю здесь рабочий код
#include<string.h>
int main() {
char s[10] = "Gokul";
int len = 0;
while (s[len] != '\0') {
len++;
}
printf("len=%d\n", len);
for (int i = 0; i < len; i++) {
for (int j = 0; j < len; j++) {
if (j == i || j == (len - i - 1)) {
printf("%c", s[i]);
} else printf(" ");
}
printf("\n");
}
return 0;
}
Надеюсь, это поможет вам.