Не Могу Понять Что За Проблемы С Кодировкой?

Тема в разделе "Общие вопросы по С и С++", создана пользователем factura, 14 янв 2014.

  1. factura

    factura New Member

    Регистрация:
    9 янв 2014
    Сообщения:
    2
    Симпатии:
    0
    Найти в тексте все слова (не содержащие пробелов последовательности символов), содержащие символы из более чем одного из четырёх алфавитов: русских букв, латинских букв, цифр, символов (математических символов и знаков пунктуации).

    Вот что сделал


    Код (C++):
     
    #include <conio.h>
    #include <stdio.h>
    #include <string.h>
    void main()
    {
    printf("INPUT:\n");
    char s[100];
    scanf("%[^\n]s",s);
    int count=0;
    for(int i=0;i<strlen(s)-1;i++)
    {
    if(s[i]==' ' && ((s[i+1]>='A'&& s[i+1]<='Z' && s[i+1]>='А' && s[i+1]<='Я') || (s[i+1]>='a'&& s[i+1]<='z' && s[i+1]>=-128 && s[i+1]<=-17)) )
    count++;
    }
    printf("RESULT-%d",count);
    _getch();

    }
    Когда ввожу слова с русскими и латинскими буквами по отдельности всё Работает
    Работает когда ввожу последовательность типа "SSSЯЯЯЯ"
    Но, когда ввожу последовательность "ЯЯЯЯJJJJ" то слово игнорируется почему не могу понять
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    s[i+1]>='a'&& s[i+1]<='z' && s[i+1]>=-128 && s[i+1]<=-17
    символы от a до z имеют положительные коды. Как один и тот же (s[i+1]) символ может быть, с одной стороны положительным число, а с другой - отрицательным (от -17 до -128) ? я не понимаю этих условий и того, как это может работать вообще.
     
  3. factura

    factura New Member

    Регистрация:
    9 янв 2014
    Сообщения:
    2
    Симпатии:
    0
    Работает, ибо при проверке диапазон кириллических символов диапазон составил от -127 до -17 среда VS 2012
     
  4. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    ты понимаешь значение союза "И" ?

    ты фактически пишешь (значения чуть другие, но суть таже):

    (А > -10) И (A < 10) И (А > 100) И (А < 110)

    никакое А этакому условию не соответствует. Это понимаешь школьник-второклассник, а ты - не понимаешь?
     
Загрузка...

Поделиться этой страницей