• C++字符


    字符

    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码
     回退符 8
    制表符 9
    换行符 10
    f 换页符 12
    回车符 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的大写形式
  • 相关阅读:
    React开发流程及认识
    Python整合AnaConda
    计算机显示器扩展方向调整
    python3 urlencode 和 urldecode 使用
    解决开启Vue项目缺少node_models包问题
    解决开启Vue项目缺少node_models包问题
    python中列表相加
    python炒鸡面试题
    Django中的CBV控制前后端分离模式
    selenuim使用总结
  • 原文地址:https://www.cnblogs.com/bwjblogs/p/12595209.html
Copyright © 2020-2023  润新知