C++ isprint()

2024年8月28日 | 阅读 4 分钟

isprint()是C++中一个用于处理字符串和字符的预定义函数。字符串和字符函数所需的头文件分别是cstring和cctype。如果参数包含任何可打印字符,此函数就会被用来确定这一事实。在C++中,有多种类型的可打印字符,包括

内置于“cctype.h”头文件中的C++函数“isprint()”用于判断一个字符是否可打印。

除了空格字符(' '),Isprint在常量情况下返回true。

此函数(Isprint)有一个本地化版本,可以在cctype头文件中找到。

要确定一个句子字符串中是否出现任何非打印字符,请使用Isprint()函数。

-Isprint()是一个内部函数,提供了一种处理不可打印字符的有效方法。

程序员可以通过使用-Isprint()来减少代码行数。

-Isprint()确实可以加快软件的编译速度。

在您的软件中包含cctype.h,除了isprint()之外,还会为用户启用多个其他相关函数。cctype.h中还有其他函数,包括

isblank (检查字符是否为空白)

Iscntrl (检查字符是否为控制字符)

isdigit (检查字符是否为十进制数字)

Isgraph (检查字符是否有图形表示)

语法

时间复杂度:O(n)

辅助空间:O(1)

在C++中给定一个字符串,我们需要计算该字符串中可打印字符的数量。算法

1) 逐个字符遍历给定字符串直到其长度结束,检查字符是否为可打印字符。

2) 如果是可打印字符,则将计数器加1,否则遍历到下一个字符。

3) 打印计数器的值。

示例


输出

18

Isprint()的参数是

C是一个待检查的字符,强制转换为int类型或EOF。

示例

由于换行符无法打印,它将只打印一行。

示例

输出

如果我们运行上面的代码,它将生成以下输出 -

第一行 n 第二行 n

示例

输出

如果我们运行上面的代码,它将生成以下输出 -

Hellotallnhow are you

注意:与<cctype>中的所有其他函数一样,如果参数的值既不能表示为unsigned char,也不等于EOF,则std::isprint的行为是未定义的。为了安全地将这些函数用于普通char(或signed char),参数应首先转换为unsigned char。

同样,当迭代器的值类型是char或signed char时,它们不应直接与标准算法一起使用。相反,应先将值转换为unsigned char。