Не понимаю что не так
Вот этот код должен останавливать ввод строки, когда на конце будет точка, но почему-то он этого делать не хочет.
#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] = "";