Не понимаю что не так

Вот этот код должен останавливать ввод строки, когда на конце будет точка, но почему-то он этого делать не хочет.

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



int main()
{
    char ch[1000];
    while (ch[strlen(ch) - 1] != ".")
    {
        scanf("%s", ch);
    }
    return 0;
}

Ответы (1 шт):

Автор решения: Harry

Странно, что оно у вас вообще скомпилировалось...

ch[strlen(ch) - 1] != "."

вы пытаетесь сравнить символ с адресом строки ".". Символ в C заключается в одинарные кавычки.

ch[strlen(ch) - 1] != '.'

Вот, смотрите...

Да, на всякий случай - вы в курсе, что %s считывает не всю строку, а одно слово?..

И еще - изначально у вас строка ch не инициализирована - а вдруг получится так, что в ней будет эта самая точка? :) Напишите уж лучше

char ch[1000] = "";
→ Ссылка