ASCII码(ASCII code)就是用来储存字母和符号的字符编码,他区分大小写。例如A的ASCII码是65,B是66,而小写的a是97,b是98。
在我们声明变量类型后,例如int 或者 char,我们的编译器就会记住他,然后通过cin和cout进行转换、储存、显示。
例如,我们输入int a=97; cout <<a; 则显示出来的是97
如果我们输入
char a; cin >> a; //注:假如这时我们在运行程序的时候输入字母a cout << a;
则显示出来的是a。
如果我们输入:
char a; cin >> a; //假如这时在运行程序的时候输入字母a。 int b = a; //变量b被声明为整数,而非字母。由于a在储存时被储存为97,因此b被赋值为储存值97。 cout << a << endl; //显示字母a(因为声明的整型char) cout << b << endl; //显示整数b(因为声明的整型为int)
这个时候,显示的结果为a 和 97。
上代码:
#include <iostream> using namespace std; int main() { char a; //声明变量a为char,即可以为字母和整数 cout << "Please type a word like a: "; //告诉你,输入一个字母,比如字母a。 cin >> a; //将你输入的储存为变量a。如果你输入的大于一个,则只储存第一个 int i = a; //声明变量b为int,即只能为整数 cout << "You have type the " << a << " .Is that right?" << endl; //告诉你,你输入的是变量a(如果你输入的是字母,则显示字母,输入数字则显示数字) cout << "The ASCII code for " << a << " is " << i << endl; //告诉你,你输入的字母(或数字)的ASCII码为多少,比如a就是97 cout << endl; //空一行 cout << "Now I will give you another word and this word is the next word of the word you typed:" << ++a << endl; //显示你输入字母的下一个字母,++a是a+1,准确的说,是你输入字母/数字的ASCII码加一后所代表的字母/数字 i = a; //整数变量i再次等于变量a,需要注意的是,这个变量a是之前变量a+1后的a。以下同 cout << "And the ASCII code for " << a << " is " << i << endl; //显示整型char变量a和其的ASCII code system("pause"); return 0; }
这个的关键就在于,使用char的时候,他是以ASCII码的形式储存的,而非是以int的整数形式储存的。例如,ASCII码的1,其值是49,而不是1。而这个时候,变量+1也是其ASCII码值+1。因此
char a = 'a'; a=a + 1; cout << a << endl;
所显示的是b。
再另外,需要注意的是,如果要直接赋值给char a,而且要赋值的是一个字母,则需要用单引号将其包括起来,如char a = 'a'; 。如果要赋值的是一个字符串,则用双引号,也要给变量加中括号。上代码:
#include <iostream> using namespace std; int main() { char a[10]; //将变量a变为一个字符串,后面的[10]是字符串的长度。如果输入的超过这个长度,虽然能显示出来,但是会出错,总之还是不要了。 char b[10] = "aaaa"; //假如b后面不加[10],且括号里面的数字10大于等于后面赋值的双引号里面的长度,就会出错。 cin >> a; cout << a << endl; cout << b << endl; system("pause"); return 0; }