c++基础31ascii


ASCII(美国信息交换标准代码)是一种字符编码标准,用于将特定的数字值与字符进行对应。

ASCII码表

ASCII码表包含了128个字符,包括:

  • 控制字符(如换行符\n,回车符\r,制表符\t等)
  • 可打印字符(如大写字母A-Z,小写字母a-z,数字0-9,以及一些特殊符号)

C++中的ASCII操作

在C++中,你可以使用字符的ASCII值来执行各种操作,例如:

  1. 字符与ASCII值的转换

    • 将字符转换为对应的ASCII值:int value = 'A';(结果为65)
    • 将ASCII值转换为对应的字符:char ch = 65;(结果为’A’)
  2. 字符比较

    • 比较两个字符:if ('A' < 'B')
  3. 字符运算

    • 计算字符之间的差值:int diff = 'B' - 'A';(结果为1)
    • 计算字符的ASCII值:int asciiValue = static_cast<int>(ch);
  4. 字符数组与字符串

    • 字符数组和字符串字面量都是以空字符(ASCII值为0)结尾的字符序列。

示例代码

#include <iostream>
int main() {
    // 打印字符及其ASCII值
    char ch = 'A';
    std::cout << "Character: " << ch << ", ASCII Value: " << static_cast<int>(ch) << std::endl;

    // 计算字符之间的差值
    int diff = 'B' - 'A';
    std::cout << "Difference between 'B' and 'A': " << diff << std::endl;

    // 检查是否为大写字母
    if (ch >= 'A' && ch <= 'Z') {
        std::cout << ch << " is an uppercase letter." << std::endl;
    }

    return 0;
}

注意事项

  • 在C++中,字符实际上是以整数形式存储的,因此可以直接进行算术运算。
  • ASCII码表只包含128个字符,对于需要表示更多字符(如国际字符)的场景,可以使用其他编码标准,如UTF-8或UTF-16。
  • 在处理字符时,需要注意字符的编码和平台差异,特别是在跨平台开发时。
    ASCII表包含了128个字符,分为控制字符和可打印字符。以下是ASCII表的完整列表:

ascii表

控制字符(0-31 和 127)

十进制十六进制符号/名称
000NUL (Null)
101SOH (Start of Header)
202STX (Start of Text)
303ETX (End of Text)
404EOT (End of Transmission)
505ENQ (Enquiry)
606ACK (Acknowledgment)
707BEL (Bell)
808BS (Backspace)
909HT (Horizontal Tab)
100ALF (Line Feed)
110BVT (Vertical Tab)
120CFF (Form Feed)
130DCR (Carriage Return)
140ESO (Shift Out)
150FSI (Shift In)
1610DLE (Data Link Escape)
1711DC1 (Device Control 1)
1812DC2 (Device Control 2)
1913DC3 (Device Control 3)
2014DC4 (Device Control 4)
2115NAK (Negative Acknowledge)
2216SYN (Synchronous Idle)
2317ETB (End of Transmission Block)
2418CAN (Cancel)
2519EM (End of Medium)
261ASUB (Substitute)
271BESC (Escape)
281CFS (File Separator)
291DGS (Group Separator)
301ERS (Record Separator)
311FUS (Unit Separator)
1277FDEL (Delete)

可打印字符(32-126)

十进制十六进制符号/名称
3220SP (Space)
3321! (Exclamation Mark)
3422" (Double Quote)
3523# (Number Sign)
3624$ (Dollar Sign)
3725% (Percent)
3826& (Ampersand)
3927’ (Single Quote)
4028( (Left Parenthesis)
4129) (Right Parenthesis)
422A* (Asterisk)
432B+ (Plus Sign)
442C, (Comma)
452D- (Minus Sign)
462E. (Period)
472F/ (Slash)
48300
49311
50322
51333
52344
53355
54366
55377
56388
57399
583A: (Colon)
593B; (Semicolon)
603C< (Less Than)
613D= (Equals)
623E> (Greater Than)
633F? (Question Mark)
6440@ (At Sign)
65-9041-5AA-Z (Uppercase Letters)
915B[ (Left Square Bracket)
925C\ (Backslash)
935D] (Right Square Bracket)
945E^ (Caret)
955F_ (Underscore)
9660` (Grave Accent)
97-12261-7Aa-z (Lowercase Letters)
1237B{ (Left Curly Bracket)
1247C
1257D} (Right Curly Bracket)
1267E~ (Tilde)

T145533

打印ASCII码

  • 题目描述

输入一个除空格以外的可见字符(保证在函数scanf中可使用格式说明符 %c 读入),输出其 ASCII 码。

  • 输入格式

一个除空格以外的可见字符。

  • 输出格式

一个十进制整数,即该字符的 ASCII 码。

  • 样例输入
A
  • 样例输出
65

代码

#include <iostream>
int main() {
    char ch;
    std::cin>>ch;
    //std::cout << static_cast<int>(ch) << std::endl;
    std::cout << (int)ch << std::endl;
    return 0;
}
  • ascii码转成字符打印输出

int a=97;
cout<<(char)a<<endl;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值