前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【小白学习C++ 教程】九、C++中字符型、字符串和转义字符

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

作者头像
润森
发布2022-08-18 09:25:25
1.1K0
发布2022-08-18 09:25:25
举报
文章被收录于专栏:毛利学Python

「@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

数字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");
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串
  • 字符
  • 转义字符
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档