(一)字符类型
字符类型是由一个字符组成的字符常量或者字符变量。
(二)字符常量
用一对单引号括起来的单个字符。例如:'h'、'3'、'!'等, 而' '是空字符。
(三)字符变量
用来保存字符类型的变量。在C++中,char表示字符类型。
例如: char c; //定义了一个字符型变量c。
char c = 'h';//定义了一个字符型变量c,而且给它赋值为字符'h'。
(四)字符变量的读入输出
char c; //定义字符型变量c;
cin>>c; //读入一个字符并赋值给c
cout<
值得注意的是当读到空格或者回车换行符时,该字符被认为读入结束。
1、ASCII码的由来
为了互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了常用符号的编码。
2、字符的ASCII码表
字符分成两大类:可见字符和不可见字符。
可见字符的ASCII为32至126的正整数,具体如下:
不可见字符: 0~31及127(共33个)是控制字符或通信专用字符。
如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等。ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。
它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
字符型与整型的比较和运算
(一)字符之间的大小比较
字符之间是可以比较大小关系的,字符之间的大小关系,就是字符的ASCII码的大小关系。
'a' < 'b',因为'a'的ASCII码是小于'b'的ASCII码。
'a' > '9',因为'a'的ASCII码大于'9'的ASCII码。
(二)字符与整数的大小比较
字符的ASCCI码是0至127的整数,字符与整数比较的规则是把字符的ASCCI码和整数进行大小比较,例如:'a'<120结果是真,'b'>127的结果是假,而97<'b'&&'b'<100的结果是真。
(三)字符与整数的算术运算与相互赋值
(1)字符与字符之间的算术运算
字符与字符之间的算术运算,就是字符的ASCII之间运算,也可以看成是整数之间的运算。
例如: 'a'+'b'=97+98=195,'a'-'b'=97-98=-1, 'a'*'b'= 9506,'1'+'2'= 99。
(2)字符与整数之间的算术运算
当字符与整数进行算术运算时,会自动把字符转为ASCCI码,然后再和整数进行算术运算。
例如: 'a'+ 1的结果是98,这是因为先把'a'转为整数97,然后97+1=98。
例如: 'a'+100-'c' = 98+100-99=99。
(1)字符串的定义
用一对双引号括起来的字符序列就是字符串。
(2)字符串常量
例如:"good"、"hello 2021!"、"v"等都是字符串常量。如果双引号内什么都没有,就是空字符串:""
(3)字符串变量
用来存放一串若干字符的变量就是字符串变量。在C++中,字符串变量的类型是string。
形式一:string s; //定义了一个变量s,它是用来保存字符串的。
形式二:string s(字符串); //定义了字符串变量s,而且赋初始。
例如string s("good"); //定义了字符串变量s,且s="good"。
形式三:string s(个数,字符); //定义了字符串变量s,而且赋初始。
例如string s(3,'a'); //定义了字符串变量s,且s="aaa"。
(4)字符串赋值
string s = "good"; //定义字符串变量s,且赋值为"good"。
string s = 'a'; // 定义字符串变量s,且赋值为"a"。
(5)字符串的读入与输出
可以用cin读入一个字符串,用cout输出一个字符串。
值得注意的是:读入字符串时,遇到空格或者换行时,会认为这个字符串的读入结束。
例如上面输入abc abc,但字符串变量s的值是"abc",因为遇到空格了。
上面的代码读入"abc"赋值给s,然后读入"xyz"赋值给t。
(6)字符串的长度
可以通过size()函数或者length()函数来获得字符串的长度(即字符串包含多少个字符)。
(7)获取字符串的字符
字符串s的长度是s.size(),可以用s[0]至s[s.size()-1]来获取字符串的各个字符。
例如 s="abc123",那么s.size()就等于6,s的各个字符如下图所示:
可以看出,字符串s和一维数组有点类似,s的首字符是s[0],最后一个字符是s[s.size()-1]。
s的第i个字符是s[i],s[i]是字符型,即s[i]的使用方法和char变量使用方法相同。