while ( counter == !'\0' ) { … }
Ну, !'\0'
равно true
, что как целое число равно 1
.Таким образом, у вас есть while (counter == 1)
, и counter
инициализируется в 0
, что делает выражение немедленно false
, поэтому цикл никогда не выполняется.
Вы, вероятно, намеревались написать != '\0'
.Но это все еще проблема, поскольку counter
начинается со значения 0
, а 0 != 0
по-прежнему false
и цикл не зацикливается.
Когда вы вводите Hey
какВаша строка, символы H
, e
, y
и \0
помещаются в переменную string
.Вы хотите найти, где находится символ \0
, который мы видим в string[3]
.Так почему вы сравниваете counter
с '\0'
?Может быть, вы хотите string[counter]
?
Когда вы получите количество символов в Hey
, которое равно 3
, вы начнете обратный цикл, копируя \0
с индекса 3 в индекс 0
... все 4 символа в обратном порядке: \0
, y
, e
, H
.К сожалению, \0
в начале будет отмечать конец строки, поэтому строка будет выглядеть пустой ..