C++第四课(神秘的编码)
学习内容:
1.熟悉字符对应的ASCII码(如A- 65,a -97,0- 48等);
2.字符型与ASCII码之间的转换;
3.神秘编码的应用;
具体内容:
如果将程序主体换成如下程序,结果一样吗? { int i,j; i=’A’; j=’B’; cout<<i<<endl; cout<<j<<endl; return 0; } |
计算机中有什么神秘的编码?让我们用程序来找找。
【程序一】
#include<iostream>
using namespace std;
int main()
{ cout<<(int)('A')<<endl; //输出结果 ;
cout<<(int)('B')<<endl; //输出结果 ;
cout<<(int)('2')<<endl; //输出结果 ;
return 0;
}
结论:字符转ASCII码 格式:(int)(字符)
【练一练】编写一个程序,输入一个字符,求其对应ASCII码;
输入:一个字符;
输出:一个十进制整数,即该字符的ASCII码;
样例输入 A
样例输出 65
【填一填】运用以上的程序,将部分字符的ASCII码填写在空格中;
大写字母 | A | B | C | D | E | F | …… | Y | Z |
ASCII码 | 65 | 66 | …… | ||||||
小写字母 | a | b | c | d | e | f | …… | y | z |
ASCII码 | 97 | 98 | 99 | 101 | 102 | …… | 121 | ||
数字和其他 | 0 | 1 | 2 | 3 | …… | 9 | : | ; | …… |
ASCII码 | 48 | 49 | …… | 57 | 58 | 59 | …… |
【程序二】
#include<iostream>
using namespace std;
int main()
{ cout<<(char)(97)<<endl; //输出结果 ;
cout<<(char)(98)<<endl; //输出结果 ;
cout<<(char)(57)<<endl; //输出结果 ;
return 0;
}
结论:ASCII码转对应字符 格式:(char)(ASCII码)
【小知识】将一个字符存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的ASCII代码放到存储单元中。
【练一练】输入一个ASCII码,输出其字符;
输入:一个ASCII码;
输出:一个十进制整数,即该字符的字符;
样例输入 A
样例输出 65
【实例1】 输入以下程序,并理解(数字字符转数字)程序;
#include<iostream>
using namespace std;
int main()
{ char a,b,c;
cin>>a>>b>>c; //输入内容 ;
cout<<a-'0'+b-'0'+c-'0'<<endl; //输出结果 ;
return 0;
【思考】你能看明白下面数字转数字字符的语句吗?
char(num+'0') 或 char(num+48)
【实例2】 输入以下程序,并理解程序;
#include<iostream>
using namespace std;
int main()
{ char a;
cin>>a; //输入内容 ;
cout<<a+1<<endl; //输出结果 ;
cout<<char(a+1)<<endl; //输出结果 ;
a++;
cout<<a<<endl; //输出结果 ;
return 0;
【挑战极限】 神龙数码公司设计了一个加密算法:用a代替z,用b代替y,用c代替x,……,用z代替a。现要求输入一个字符,对其进行加密输出。
提示:寻找输入变量x和输出变量y两个字符之间的关系;