• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++字符

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

C++不但可以处理数字类型的值,也可以处理字符。字符数据类型(char)代表一个单独的字符。一个字符被单引号括起来,如:

char lettter = 'A';

char number = '0';

要注意这里的0不再是数字类型(int,double,float,long),而是字符(char)类型。

这里还有一点要注意,之后讲到的字符串类型(string)使用""括起来的,所以"A"是字符串类型而不是字符类型。

ASCII码

众所周知,计算机只能识别0和1,那么计算机是如何识别字母,汉字或者其他语言呢。这里涉及到编码,即把一个字符映射为二进制数。而ASCII是比较原始的一种编码方式。常用的有数字('0'~'9',对应ASCII值48~57),大写字母('A'~'Z',对应ASCII值65~90),小写字母(''a~'z',对应ASCII值97~122)。详细的ASCII可以上网搜搜看,这里就不过多赘述了。

因为ASCII码只涉及到英文字母和一些英文符号,不能满足其他国家的需求,所以后来又出现了很多编码方式,如GBK,Unicode(万国码)等,其中又分为UTF-8, UTF-16等,汉字在UTF-8中常占3个字节,也有4个字节的。当然,这里主要介绍ASCII,额外的就不过多介绍了。

如何从键盘读入一个字符呢?见下面的代码:

cout << "Enter a character: " << endl;
char ch;
cin >> ch;
cout << "The character you entered is " << ch <<  endl;

转义序列

看下面一句代码

cout << "He said "I like C++"" << endl;

我们的本意是输出:He said "I like C++" ,但是程序以为我们的字符串只有: "He said " ,所以会报一个编译错误。想想也是理所应当的,否则的话就会有二义性了。

C++为了解决这一问题,使用了一种特殊符号——转义字符,来表示一下特殊符号。转义序列都是以一个反斜线打头,后面跟着一个字符。转义序列被看做一个整体,不可分割。详见下表:

 转义序列 名称 ASCII码
\b 回退符 8
\t 制表符 9
\n 换行符 10
\f 换页符 12
\r 回车符 13
\\ 反斜线 92
\" 双引号 34

所以,之前的语句可以表示为:

cout << "He sai \"I like C++\"" << endl;

数值与字符的转换:

//1. 隐式类型转换
int i = 'A';
cout << "i is " << i <<endl;
//显示结果:65
//因为A的ASCII码为65

char c = 65;
cout << "c is " << c << endl;
//显示结果:A
//因为ASCII码为65所对应的字符为A

//2. 显式类型转换
int j = 'A' + 2;
//j的值为67
cout << j << " is the ASCII code for character " << static_cast<char>(j) << endl;
//显示 结果:67 is the ASCII code for character C
//static_cast<char>(value)的<>中的是要转换为的类型

字符之间的比较(实际上比较的是他们的ASCII码)

'a' < 'b' 返回true,因为a的ASCII码是97,b的ASCII码是98

'a' < 'A' 返回false,因为a的ASCII码是97,A的ASCII码是65

字符函数

函数 描述
isdigit(ch) 如果ch是数字,返回true
isalpha(ch) 如果ch是字母,返回true
isalnum(ch) 如果ch是数字或字母,返回true
islower(ch) 如果ch是小写字母,返回true
isupper(ch) 如果ch是大写字母,返回true
isspace(ch) 如果ch是空白字符,返回true
tolower(ch) 返回ch的小写形式
toupper(ch) 返回ch的大写形式

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap