【小白学习C++ 教程】九、C++中字符型、字符串和转义字符

2022-08-18 09:25:25 浏览数 (1)

「@Author:Runsen」

字符串

要在 C 中使用字符串,我们首先需要#include <string> 标头,来引入 std::string 的声明,就可以定义std::string类型的变量。

就像普通变量一样,可以按照预期对字符串进行初始化或赋值:

代码语言:javascript复制
// 使用字符串文字“Runsen”初始化myName
std::string myName{ "Runsen" };
// 将字符串文字“maoli”赋给变量myName 
myName = "maoli"; // 

字符串可以使用std::cout打印输出:

代码语言:javascript复制
#include <iostream>
#include <string>
 
int main()
{
    std::string myName{ "Runsen" };
    std::cout << "My name is: " << myName << 'n';
}

要将整行输入读入字符串,最好使用该std::getline()函数。std::getline()有两个参数:第一个是std::cin,第二个是你的字符串变量。

代码语言:javascript复制
#include <string> // For std::string and std::getline
#include <iostream>
#include <iomanip> // For std::ws
 
int main()
{
    std::cout << "Enter your full name: ";
    std::string name{};
    std::getline(std::cin >> std::ws, name); // read a full line of text into name
 
    std::cout << "Enter your age: ";
    std::string age{};
    std::getline(std::cin >> std::ws, age); // read a full line of text into age
 
    std::cout << "Your name is " << name << " and your age is " << age << 'n';
 
    return 0;
}

输出如下:

代码语言:javascript复制
Enter your full name: Runsen
Enter your age: 22
Your name is Runsen and your age is 22

字符

「作用」:字符型变量用于显示单个字符

「语法」char ch = 'a';

注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号

注意2:单引号内只能有一个字符,不可以是字符串

  • C和C 中字符型变量只占用1个字节。
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

示例:

代码语言:javascript复制
int main() {
 
 char ch = 'a';
 cout << ch << endl;
 cout << sizeof(char) << endl;

 //ch = "abcde"; //错误,不可以用双引号
 //ch = 'abcde'; //错误,单引号内只能引用一个字符

 cout << (int)ch << endl;  //查看字符a对应的ASCII码
 ch = 97; //可以直接用ASCII给字符型变量赋值
 cout << ch << endl;

 system("pause");
}

ASCII码表格:

「ASCII」值

「控制字符」

「ASCII」值

「字符」

「ASCII」值

「字符」

「ASCII」值

「字符」

0

NUT

32

(space)

64

@

96

1

SOH

33

!

65

A

97

a

2

STX

34

"

66

B

98

b

3

ETX

35

#

67

C

99

c

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

ACK

38

&

70

F

102

f

7

BEL

39

,

71

G

103

g

8

BS

40

(

72

H

104

h

9

HT

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

75

K

107

k

12

FF

44

,

76

L

108

l

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DCI

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

r

19

DC3

51

3

83

S

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

TB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

x

25

EM

57

9

89

Y

121

y

26

SUB

58

:

90

Z

122

z

27

ESC

59

;

91

[

123

{

28

FS

60

<

92

/

124

|

29

GS

61

=

93

]

125

}

30

RS

62

>

94

^

126

`

31

US

63

?

95

_

127

DEL

ASCII 码大致由以下「两部分组」成:

  • ASCII 非打印控制字符:ASCII 表上的数字 「0-31」 分配给了控制字符,用于控制像打印机等一些外围设备。
  • ASCII 打印字符:数字 「32-126」 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。

转义字符

「作用」:用于表示一些不能显示出来的ASCII字符

现阶段我们常用的转义字符有:n \ t

「转义字符」

「含义」

「ASCII」码值(十进制)

a

警报

007

b

退格(BS) ,将当前位置移到前一列

008

f

换页(FF),将当前位置移到下页开头

012

「n」

「换行(LF) ,将当前位置移到下一行开头」

「010」

r

回车(CR) ,将当前位置移到本行开头

013

「t」

「水平制表(HT) (跳到下一个TAB位置)」

「009」

v

垂直制表(VT)

011

「\」

「代表一个反斜线字符""」

「092」

'

代表一个单引号(撇号)字符

039

"

代表一个双引号字符

034

?

代表一个问号

063

数字0

000

ddd

8进制转义字符,d范围0~7

3位8进制

xhh

16进制转义字符,h范围0~9,a~f,A~F

3位16进制

示例:

代码语言:javascript复制
int main() {

 cout << "\" << endl;
 cout << "tHello" << endl;
 cout << "n" << endl;

 system("pause");
}

0 人点赞