一、★字符型 讲解

字符型用char作为标识符。字符型常量必须用单引号括起来,字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符。如果有多个字符则是字符串类型string,前后必须加双引号。

int、double等类型,在读入时,碰到空格、回车之类的是不影响读入的。

但是在字符读入时,就需要注意这些了,因为空格、回车等都属于字符类型,如果是字符读入时,它们也是读入的一部分,需要注意。

字符类型是一类比较特殊的字符。所有的字母、数字、符号、控制符(空格、回车之类的)都在字符范围之内,可以说键盘能输入的内容都可以当做字符处理。

所以,学完字符后,数字的概念就有两种表达方式了:字符数字和以前使用的纯粹的数字。有什么区别呢?

计算机在设计的时候,就给每个字符设置了唯一的ASCII码,可以理解为每个字符都有自己的身份证编码,这个编码是统一的(见下表)。这个编码是数字,编码的数字对应的就是字符。

比如: 'A'的ASCII值是65,如果你把65赋值给一个字符变量,就是 'A';

如果你把 'A'赋值给一个整型变量,就是65;

比如下面的程序:

#include <cstdio>
#include <iostream>
using namespace std;
char c1; //定义字符型
int a;
int main() {
c1 = 'A'; //给c1赋值一个字符。注意字符前后加单引号
a = 'A';
printf("%d %d %c", c1, a, a);
return 0;
}

'1'和 1 是不一样的, '1'的ASCII值是49,1就是1,两个值是不等价的。在使用的时候要注意转换。

#include <cstdio>
#include <iostream>
using namespace std;
char c1; //定义字符型
int a;
int main() {c1 = '1'; //给c1赋值一个字符。注意字符前后加单引号a = c1 - '0'; //或者如果你知道字符 '0' 的ASCII值是48,也可以这么写: a=c1-48;printf("%c %d", c1, a); //前面是字符数字,用%c格式符,后面是纯数字,用%dreturn 0;
}

下面来看下字符的读入方式:

样例:读入两个字符,字符之间用空格隔开,判断两个字符是否相等,等则输出“Equ”,否则输出“Not Equ” C语言格式一:

#include <cstdio>
#include <iostream> //2510
using namespace std;
char c1, c2; //定义字符型
int main() {
scanf("%c %c", &c1, &c2); //字符型的格式符是%c 。注意两个%c中间有加了个空格
//这个空格用来就是对应读入的两个字符中间的空格
if (c1 == c2) //比较两个字符是否相等printf("Equ");
elseprintf("Not Equ");return 0;
}

C语言格式二:使用getchar()

getchar()的读入速度非常快,在有些题目输入数据很大的时候还必须用getchar()来优化读入速度。

#include <cstdio>
#include <iostream> //2510
using namespace std;
char c1, c2; //定义字符型
int main() {c1 = getchar(); //读入第一个字符c2 = getchar(); //读入的第二个字符是中间的空格,必须处理c2 = getchar(); // c2再读入一次,这次读到的才是第三个需要的字符if (c1 == c2) //比较两个字符是否相等printf("Equ");elseprintf("Not Equ");return 0;
}

C++ 语言格式:

#include <cstdio>
#include <iostream> //2510
using namespace std;
char c1, c2; //定义字符型
int main() {cin >> c1 >> c2; // cin语句比较特殊,它会自动忽略空白字符,所以用cin读入时可以像整数//那样正常读入。但是如果题目要求空格也要读入时就不能用cin了if (c1 == c2) //比较两个字符是否相等printf("Equ");elseprintf("Not Equ");return 0;
}

二、例题

找出混在字母代码里的数字字符。

提示:除了使用while循环,本题也可以使用for循环来控制读入for (char c = getchar(); c != '?'; c = getchar()){

循环语句。。。
}
}

输入有一行字符,以‘?’结尾。

按顺序输出其中的数字

输入样例 1

sdlkfsjdkf45kldksfjlksdfk6dksfjsdkf7lkdfksd?

输出样例 1

4567

出题人及讲解人:ptyz -- lzy老师

三、代码讲解

思路

 定义一个字符,每次输入,如果字符的ASCII码在'0'(48)至'9'(57)之间,输出;否则继续输入字符。

(也可以用字符串来做)

代码一

——摘自zyc200156

#include<bits/stdc++.h>
using namespace std;
int main(){std::ios::sync_with_stdio(false);for(char c=getchar();c!='?';c=getchar())if(c>='0'&&c<='9')cout<<c;
}

代码二

#include<bits/stdc++.h>
using namespace std;
int main()
{char a=0;while(a!='?'){a=getchar();if(a>='0'&&a<='9')cout<<a;}return 0;
}

四、ASCII码表

注:32至127是可显示字符

讲解、出题不易,请顺手点个赞吧,谢谢 O(∩_∩)O!

——Turingxu原创

字符★字符型讲解★ASCII码(最全讲解,亿字干货)相关推荐

  1. C语言输出字符,字符串的ASCII码的16进制数

    C语言输出字符,字符串的ASCII码的16进制数 /* file name : test.c cmd code : gcc -o test.exe test.c */ #include<stdi ...

  2. 微型计算机中普片编码,【单选题】微型计算机中普遍使用的字符编码是A. ASCII码B. BCD 码C. 拼音码D. 补码...

    参考答案如下 于挫这属折的范畴,单选里的开了电脑打不资料存在. 丙用两下对乙很砸铁棍头部,题微先给元钱1万付丙,去教训乙要丙,当场致乙死亡,行为甲的属于. 型计的方退出下面错误法是. 算机标度人眼量称 ...

  3. 求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这三个字符及其对应的ASCII码值。

    #include<stdio.h> int main() { char a; //输入一个字符 scanf("%c", &a); //后继字符 printf(& ...

  4. c语言中 字母对应的数值,c语言字母对应ascii码 实型数据,与字符型数据

    知识点:实型的定义方法和实型常量的表达方法; 重要程度:★★★★ 1.实型常量 在C语言中,实型常量有两种表示形式:小数形式和指数形式. (1)小数形式 规则如下:1. 有且仅有一个小数点. 2. 左 ...

  5. Python中实现ASCII码与字符相互转换

    场景 实现ASCII码与字符的相互转换. 实现 新建mc.py # -*- coding: UTF-8 -*- # Filename :mc.py# author by : badaoc = inpu ...

  6. 输入asc码输出字符c语言,输入一个字符输出ascii码

    C语言 输入一个字母,输出与之对应的ASCII码,输入用C语言编写. #include "stdafx.h" //VS 预编译头文件,其他系统请删除 #include #inclu ...

  7. 汇编指令中英文释义 ASCII码字符表

    点击查看原文 debug 中标志位的英文 位置 英文缩写 标志名 标志为0 标志为1 11 OF - Overflow 溢出(是/否) NV - No Overflow OV - Overflow 1 ...

  8. 在标准ASCII码表中,已知英文字母K的十六进制码值是4B,则二进制ASCII码1001000对应的字符是( )

    在标准ASCII码表中,已知英文字母K的十六进制码值是4B,则二进制ASCII码1001000对应的字符是( ). A. G B. H C. I D. J 提示:答案B 解析:K的十六进制4B转换成二 ...

  9. c++ASCII码转字符

    题目描述 从键盘读入一个整数(ascii码),请计算并输出该ascii码对应的字符. 比如:ascii码65对应的字符是'A',97对应的字符是'a',48对应的字符是'0'. 输入 一个整数(值在a ...

最新文章

  1. 动态指定超链接参数的几种方法(Passing a JavaScript variable into href of )
  2. 京东果然发福了:宣布涨薪两个月! 2 年内将员工平均薪资涨至 16 薪
  3. HDU 1824 Let's go home
  4. 云计算对于传统软件工程的影响
  5. SOA对微服务的残余影响
  6. 资源放送丨《MGR原理介绍与案例分享》PPT视频
  7. 梯度的直观理解_BP反向传播算法的思考和直观理解 -卷积小白的随机世界
  8. 大数据Hadoop学习记录(2)----基于Java语言的HDFS文件数据载入(判断文件是否存在、写入文本文件、上传本次文件到HDFS、读取HDFS文件内容)
  9. 硬盘整数分区计算方法一般算法
  10. 数字图像处理 冈萨雷斯 资源下载
  11. Android so文件浅析
  12. media-微软Azure文字转语音
  13. ORACLE-检查约束(check)
  14. 鲁大师怎么查看cpu风扇转速|用鲁大师查看cpu风扇转速的方法
  15. Discuz文章采集工具,Dz文章采集发布工具
  16. Temporary failure in name resolution错误解决方法
  17. Android 11 微信友盟分享报错 分享异常 Android 11及以上系统的手机需要使用FileProvider方式分享
  18. python遇到天猫反爬虫_selenium 淘宝登入反爬虫解决方案(亲测有效)
  19. 【LaTeX符号】条件独立与不独立符号
  20. Linux 网络唤醒

热门文章

  1. 2023最新仿小鸟云主机服务器IDC网站源码+支持WAP响应式
  2. 目前手机号码运营商正则判断功能
  3. 记一次阿里云服务器被挖矿的经历
  4. ColorHexa是您的终极色彩百科全书
  5. R:热图解释 | pheatmap包参数及详细聚类图绘制流程(一篇解决热图绘制问题)
  6. 尊重自己才是尊重生命的最高境界
  7. mac使用 github 这一篇就足够啦 + 上传github出现 白色向右箭头处理方法
  8. OrangePi R1 plus LTS的固件下载
  9. 基于微信小程序共享停车位设计与实现SSM_car.rar(项目源码+数据库文件+微信小程序开发+后端java语言)
  10. 你若先走了,转身时就不要怪我也在背对着你!