这里简单说一下字符宏,运用字符宏需要头文件cctype。
头文件cctype中包含多种可以用于检查某个字符型变量中字符类型的宏。
下面列举一些宏及其作用。不过需要的是,因为它们是c++程序,所以不会返回布尔值,取而代之的是返回一个int类型的非零值用于表示true,返回零表示false。
宏如下:
宏 | 测试字符是否为以下类型 |
---|---|
isalnum | 字母和数字,其范围包括A~Z, a~z, 以及0~9 |
isalpha | 一个字母字符,其范围包括A~Z ,以及 a~z |
isascii | 一个 ASCII字符,其范围包括0x00~0x7f |
isblank | 一个空格或者制表符 |
iscntrl | 一个控制字符,其范围包括0x00~0xIf 或者0x7f |
isdigit | 一个十进制数字,其范围包括0~9 |
isgraph | 一个除空格以外的可打印字符,其范围包括0x21~0x7e |
islower | 一个小写字母,其范围包括a~z |
isprint | 一个可打印字符,其范围包括0x20~ 0x7e |
ispunct | 一个标点符号,其中包括! "#S%&’()*+,-./:;<=>?@[]^_、{}~\ |
isspace | 一个空格 |
isupper | 一个大写字母,其范围包括A~ Z |
isxdigit | 一个十六进制数字,其范围包括0~9, a~f, 以及A~F |
宏 | 返回值 |
---|---|
toupper | 字符的大写版本 |
tolower | 字符的小写版本 |
例题代码:
在用户输入q或Q之前,程序将所有输入的字母以大写形式输出
#include <iostream>
#include <cctype>
using namespace std;
int main()
{
char c;
do
{
cin>>c;
if(islower(c))
c=toupper(c);
cout<<c<<endl;
}
while(c!='Q');
return 0;
}