Цитата:
Сообщение от
Poleax
...
Как заставить при сравнении различать регистр букв? Может какой флаг включить?
Через коды символов - char2num() :
X++:
static void jbCheckUppercase(Args _args)
{
str strTest = 'ёЁItisВасилийBasil' ;
int idxChar ;
boolean isUpperCase( str 1 _char )
{
int charIdx = char2num( _char, 1 ) ;
;
// english
if( charIdx >= char2num( 'A', 1 ) &&
charIdx <= char2num( 'Z', 1 ) )
return true ;
// russian
if( charIdx == char2num( 'Ё', 1 ) ||
( charIdx >= char2num( 'А', 1 ) &&
charIdx <= char2num( 'Я', 1 ) ) )
return true ;
return false ;
}
boolean isLowerCase( str 1 _char )
{
int charIdx = char2num( _char, 1 ) ;
;
// english
if( charIdx >= char2num( 'a', 1 ) &&
charIdx <= char2num( 'z', 1 ) )
return true ;
// russian
if( charIdx == char2num( 'ё', 1 ) ||
( charIdx >= char2num( 'а', 1 ) &&
charIdx <= char2num( 'я', 1 ) ) )
return true ;
return false ;
}
;
for( idxChar=1; idxChar <= strlen( strTest ); idxChar++ )
info( strfmt( "%1 - %2", substr( strTest, idxChar, 1 ), isUpperCase( substr( strTest, idxChar, 1 ) ) ) ) ;
}
P.S. strCmp - сравнивает с учетом регистра символов: strcmp( 'Ё', 'ё' ) = -1 ( !=0)