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

factura

New Member
09.01.2014
2
0
#1
Найти в тексте все слова (не содержащие пробелов последовательности символов), содержащие символы из более чем одного из четырёх алфавитов: русских букв, латинских букв, цифр, символов (математических символов и знаков пунктуации).

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


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" то слово игнорируется почему не могу понять
 
R

rrrFer

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

factura

New Member
09.01.2014
2
0
#3
s[i+1]>='a'&& s[i+1]<='z' && s[i+1]>=-128 && s[i+1]<=-17
символы от a до z имеют положительные коды. Как один и тот же (s[i+1]) символ может быть, с одной стороны положительным число, а с другой - отрицательным (от -17 до -128) ? я не понимаю этих условий и того, как это может работать вообще.
Работает, ибо при проверке диапазон кириллических символов диапазон составил от -127 до -17 среда VS 2012
 
R

rrrFer

Гость
#4
Работает, ибо при проверке диапазон кириллических символов диапазон составил от -127 до -17 среда VS 2012
ты понимаешь значение союза "И" ?

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

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

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