本文主要是介绍C++备忘录083:cctype sucks,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C下<cctype>
中的一堆操作字符的函数isupper
,isalnum
,toupper
,它们的参数类型虽然都是int
,但是如果传入char
的话,是未定义行为
Like all other functions from <cctype>, the behavior of std::isalnum is undefined if the argument’s value is neither representable as unsigned char nor equal to EOF. To use these functions safely with plain chars (or signed chars), the argument should first be converted to unsigned char
所有的主流编译器在默认情况下char
都是有符号数,static_cast<unsigned char>(c)
是必须要做的类型转换
这篇关于C++备忘录083:cctype sucks的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!