banner

z’)||(ch >= ‘A’ && ch <= 'Z')) 与使用isalpha()相比: if(isalpha(ch)) isalpha()不仅更容易使用,而且更通用。AND/OR格式假设A〜Z的字符编码是连续的,其他字符的编码不在这个范围内。这种假设对于ASCII码来说是成立的,但通常并非总是如此。 程序清单6.8演示一些ctype库函数。具体地说,它使用isalpha()来检查字符是否为字母字符,使用isdigits()来测试字符是否为数字字符,如3;使用isspace()来测试字符是否为空白,如换行符、空格和制表符;使用ispunct()来测试字符是否为标点,而gpp发出通用保护错误。其他系统可能提供不同的消息,甚至不提供任何消息,但程序中的错误是相同的。 原因在于隐式地复制构造函数是按值进行复制的。例如,对于程序清单12.3,隐式地复制构造函数的功能相当于: sailor.str = sport.str; 这里复制的并不是字符串,而是一个指向字符串的指针。也就是说,将sailor初始化为sports后,得到的是两个指向同一个字符串的指针。当operator<<()函数使用指针来显示字符串时,这并不会出现问题。但当析构函数被调用时,这将引发问题。析构函数StringBad释放str指针指向的内存,因此释放sailor的效果如下: tin buffet and seize the coffee pot and the milk pot, and am quite successful in administering to the q-b and myself. Having restored the said vessels to their tin altar, I resume my spin-chair at the long and desert board. The q-b and I are alone—save that in the distance a very fat back with gold

tips