Здравствуйте, 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 на любой платформе