c++字符、字符串详解

(一)字符类型

字符类型是由一个字符组成的字符常量或者字符变量。

(二)字符常量

用一对单引号括起来的单个字符。例如:'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的正整数,具体如下:

c++字符、字符串详解_第1张图片

不可见字符: 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输出一个字符串。

c++字符、字符串详解_第2张图片

值得注意的是:读入字符串时,遇到空格或者换行时,会认为这个字符串的读入结束。

例如上面输入abc abc,但字符串变量s的值是"abc",因为遇到空格了。

c++字符、字符串详解_第3张图片

上面的代码读入"abc"赋值给s,然后读入"xyz"赋值给t。

(6)字符串的长度

可以通过size()函数或者length()函数来获得字符串的长度(即字符串包含多少个字符)。

c++字符、字符串详解_第4张图片

(7)获取字符串的字符

字符串s的长度是s.size(),可以用s[0]至s[s.size()-1]来获取字符串的各个字符。

例如 s="abc123",那么s.size()就等于6,s的各个字符如下图所示:

c++字符、字符串详解_第5张图片

可以看出,字符串s和一维数组有点类似,s的首字符是s[0],最后一个字符是s[s.size()-1]。

s的第i个字符是s[i],s[i]是字符型,即s[i]的使用方法和char变量使用方法相同。

你可能感兴趣的:(基础精讲,c++,开发语言)