Re: вопрос насчет локалей и iscntrl
От: benny  
Дата: 16.10.03 12:08
Оценка:
Здравствуйте, SergeyLa, Вы писали:

SL>В мсдн написано так:

SL>iscntrl returns a non-zero value if c is a control character (0x00 – 0x1F or 0x7F).

Во-первых там же написано следующее:

The result of the test condition for the iscntrl function depends on the LC_CTYPE category setting of the current locale; see setlocale for more information.

Во-вторых тоже самое касается всех остальных подобных функций из <ctype.h> — isspace, isalpha etc
В-третьих, ты можешь написать так

#include <locale>

int main()
{
...
char str[]="abcdfasf";
const char* p=str;

for(;*p!='\0';++p)
if (std::iscntl(*p,std::locale::classic()))
...
};

И это по идее должно работать нормально для US-ASCII на любой платформе
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.