Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C语言新手小白详细教程(8)ASCll编码和字符串

C语言新手小白详细教程(8)ASCll编码和字符串

作者头像
意疏
发布于 2024-11-25 07:18:30
发布于 2024-11-25 07:18:30
24700
代码可运行
举报
文章被收录于专栏:学习学习
运行总次数:0
代码可运行

开篇说明

本章节我们学习C语言中一个非常重要的概念 字符串。在C语言编程中,字符串是一种非常重要的数据类型。与许多其他编程语言不同,C语言本身并没有直接提供字符串类型,而是通过字符数组来表示字符串。这种表示方法虽然简单,但也带来了一些需要注意的细节和潜在的陷阱。

在C语言中,字符串通常以字符数组的形式存储,并以空字符(\0)作为字符串的结束标志。例如,字符串 “Hello” 在内存中实际上是以 {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’} 的形式存储的。这种表示方法使得字符串的长度可以动态变化,但也要求程序员在处理字符串时必须小心处理字符串的边界和结束标志。

掌握C语言中的字符串处理技巧,不仅能够帮助我们编写出更高效、更安全的代码,还能让我们更好地理解C语言的底层机制。接下来,我们将深入探讨C语言中字符串的各种操作和注意事项。

ASCll编码

ASCII (American Standard Code for Information Interchange美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符,包括英文字母(大写和小写)、数字、标点符号以及控制字符、如换行符或回车符。

我们来举个例子:以便更好的理解ASCll编码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 #include <stdio.h>  
 int main(){  
     char ch = 'H';  
     printf("ch = %c\n", ch);  
     printf("ch的ASCII码 = %d\n", ch);  
 return 0;  
 }

输出结果是这样子的:

我们可以看到大写H的ASCll码为 72 和下面的编码相对应。读者可以自行一试。

  • 以下为ascll编码表 较长,读者可以拖动目录自行阅读。

十进制

十六进制

字符

描述

0

0x00

NUL

空字符

1

0x01

SOH

标题开始

2

0x02

STX

正文开始

3

0x03

ETX

正文结束

4

0x04

EOT

传输结束

5

0x05

ENQ

询问

6

0x06

ACK

确认

7

0x07

BEL

响铃

8

0x08

BS

退格

9

0x09

HT

水平制表符

10

0x0A

LF

换行

11

0x0B

VT

垂直制表符

12

0x0C

FF

换页

13

0x0D

CR

回车

14

0x0E

SO

移出

15

0x0F

SI

移入

16

0x10

DLE

数据链路转义

17

0x11

DC1

设备控制1

18

0x12

DC2

设备控制2

19

0x13

DC3

设备控制3

20

0x14

DC4

设备控制4

21

0x15

NAK

否定

22

0x16

SYN

同步空闲

23

0x17

ETB

传输块结束

24

0x18

CAN

取消

25

0x19

EM

介质结束

26

0x1A

SUB

替换

27

0x1B

ESC

转义

28

0x1C

FS

文件分隔符

29

0x1D

GS

组分隔符

30

0x1E

RS

记录分隔符

31

0x1F

US

单元分隔符

32

0x20

SP

空格

33

0x21

!

感叹号

34

0x22

"

双引号

35

0x23

#

井号

36

0x24

$

美元符号

37

0x25

%

百分号

38

0x26

&

和号

39

0x27

单引号

40

0x28

(

左括号

41

0x29

)

右括号

42

0x2A

*

星号

43

0x2B

+

加号

44

0x2C

,

逗号

45

0x2D

-

减号

46

0x2E

.

句号

47

0x2F

/

斜杠

48

0x30

0

数字0

49

0x31

1

数字1

50

0x32

2

数字2

51

0x33

3

数字3

52

0x34

4

数字4

53

0x35

5

数字5

54

0x36

6

数字6

55

0x37

7

数字7

56

0x38

8

数字8

57

0x39

9

数字9

58

0x3A

:

冒号

59

0x3B

;

分号

60

0x3C

<

小于号

61

0x3D

=

等于号

62

0x3E

>

大于号

63

0x3F

?

问号

64

0x40

@

艾特符号

65

0x41

A

大写字母A

66

0x42

B

大写字母B

67

0x43

C

大写字母C

68

0x44

D

大写字母D

69

0x45

E

大写字母E

70

0x46

F

大写字母F

71

0x47

G

大写字母G

72

0x48

H

大写字母H

73

0x49

I

大写字母I

74

0x4A

J

大写字母J

75

0x4B

K

大写字母K

76

0x4C

L

大写字母L

77

0x4D

M

大写字母M

78

0x4E

N

大写字母N

79

0x4F

O

大写字母O

80

0x50

P

大写字母P

81

0x51

Q

大写字母Q

82

0x52

R

大写字母R

83

0x53

S

大写字母S

84

0x54

T

大写字母T

85

0x55

U

大写字母U

86

0x56

V

大写字母V

87

0x57

W

大写字母W

88

0x58

X

大写字母X

89

0x59

Y

大写字母Y

90

0x5A

Z

大写字母Z

91

0x5B

[

左方括号

92

0x5C

|反斜杠

93

0x5D

]

右方括号

94

0x5E

^

脱字符

95

0x5F

_

下划线

96

0x60

`

反引号

97

0x61

a

小写字母a

98

0x62

b

小写字母b

99

0x63

c

小写字母c

100

0x64

d

小写字母d

101

0x65

e

小写字母e

102

0x66

f

小写字母f

103

0x67

g

小写字母g

104

0x68

h

小写字母h

105

0x69

i

小写字母i

106

0x6A

j

小写字母j

107

0x6B

k

小写字母k

108

0x6C

l

小写字母l

109

0x6D

m

小写字母m

110

0x6E

n

小写字母n

111

0x6F

o

小写字母o

112

0x70

p

小写字母p

113

0x71

q

小写字母q

114

0x72

r

小写字母r

115

0x73

s

小写字母s

116

0x74

t

小写字母t

117

0x75

u

小写字母u

118

0x76

v

小写字母v

119

0x77

w

小写字母w

120

0x78

x

小写字母x

121

0x79

y

小写字母y

122

0x7A

z

小写字母z

123

0x7B

{

左花括号

124

0x7C

125

0x7D

}

右花括号

126

0x7E

~

波浪号

127

0x7F

DEL

删除


字符串

字符串是一个或多个的序列,例如:

" i am happy ! "

  1. 字符串的定义: 字符串:C语言并没有专门存储字符串的变量类型,字符串都被存储在char类型的数组中,数组由连续的存储单元组成,字符串中的字符都被存储在相邻的存储单元中,每个单元存储一个字符。 问题来了,我们该如果区分字符数组和字符串呢? C语言中字符串一定以’\0’(空字符)结束。这意味着数组的容量必须至少比待存储字符串中的字符数多1. 注: '0’是控制字符,非打印字符,只是做标记,在实际打印时不会被显示的打印。
  2. 字符数组和字符串的输入输出 1、字符数组的输入输出,用格式符号"%c"逐个输入。 例如:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main(){

    int i;

    char ch[5];

    printf("请输入字符: \n");

    for (i = 0; i < 5; i++)

    {

        scanf("%c", &ch[i]);//ch[i] 是一个char型变量,用来接收输入的字符,&ch[i]表示ch[i]的地址,即ch[i]的指针。(取地址)

    }

    printf("您输入的字符是: \n");

    for ( i = 0; i < 5; i++)

    {

        printf("%c", ch[i]);//输出ch数组中的字符

    }

    printf("\n");

return 0;
}

结果为:

2、字符串的输入输出、将整个字符串一次输入或输出,用"%s"格式符。 例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main(){

    char ch[6];//定义一个字符数组,因为要输入'\0',所以长度要比字符串大 1

    scanf("%s",ch);//数组名前不加&,表示是地址,而不是指针

    printf("%s\n",ch);

return 0;
}

结果为:

什么是以’0’结尾呢? 再举个例子:我们来先定义一个字符串数组

char name[40];

这里我们定义了一个大小为40,类型是char的数组。然后键盘录入一个姓氏,以字符串的形式存储在name中,最后打印。

  • 代码如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main(){

    char name[40];

    printf("请输入你的名字: ");

    scanf("%s", name);//字符串转换说明%s 
    //数组名前不加&,C语言中数组名代表数组第一个元素的地址

    printf("我的名字是 %s!\n", name);

return 0;
}

运行结果:

这里当程序看到%s时,就知道你输入的是一个字符串,同样会自动在结尾加上’0’. 当计算机读取到第一个空字符’0’就知道在此之前是一个完整的字符串,并将其输出。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
C:字符函数与字符串函数-学习笔记
C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。 这些函数的使用都需要包含一个头文件是 ctype.h。
LonlyMay
2024/10/21
940
C:字符函数与字符串函数-学习笔记
【C语言 字符函数和字符串函数】—— 文本数据的奇幻加工坊,代码世界的魔法编织者
在学习字符和字符串函数之前,我们先认识一下ASCLL码,ASCII 编码是字符处理的基础,了解其规则对编程非常重要!
换一颗红豆
2024/12/23
2270
【C语言 字符函数和字符串函数】—— 文本数据的奇幻加工坊,代码世界的魔法编织者
【C语言】字符函数
C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。这些函数的使⽤都需要包含一个头文件是ctype.h。
zxctscl
2024/01/22
1230
【C语言】字符函数
字符函数,字符串函数及部分函数的模拟实现
C语言中,有一系列专门为字符所设立的函数,称为字符函数,要想使用字符函数就需要包含头文件ctype.h
AUGENSTERN_
2024/04/09
1060
字符函数,字符串函数及部分函数的模拟实现
C语言----字符函数和字符串函数
在编程的过程中,我们要经常处理字符和字符串,为了方便操作字符和字符串,c语言标准库中提供的一系列库函数,接下来我们就开始学习与认识他们
凯子坚持C
2024/09/23
1180
C语言----字符函数和字符串函数
c语言每日一练(6)
A、 测字符数组ch的长度 B、 将数字字符串ch转换成十进制数 C、 将字符数组ch中的小写字母转换成大写 D、 将字符数组ch中的大写字母转换成小写
大海里的番茄
2024/01/19
1260
c语言每日一练(6)
【C语言】字符与字符串---从入门到入土级详解
因为计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。我们最常用的编码就是ASCII编码。我们先定义一个名叫ch的字符变量,再给它赋值为’A‘,如:
修修修也
2024/04/01
3700
【C语言】字符与字符串---从入门到入土级详解
C语言字符串详解
字符串是一种非常重要的数据类型,但是C语言不存在显式的字符串类型,C语言中的字符串都以字符串常量的形式出现或存储在字符数组中。同时,C 语言提供了一系列库函数来对操作字符串,这些库函数都包含在头文件 string.h 中。
小林C语言
2020/12/25
3.7K0
C语言字符串详解
C语言字符数组-学习十四
注意:这里不用单个字符作为初值。而是用一个字符串作为初值。数组c的长度不是10,而是11,因为字符串常量的最后由系统加上一个'\0'。
XG.孤梦
2022/02/28
1.9K0
C语言字符数组-学习十四
C语言——字符函数和字符串函数(一)
📋C语言里提供一系列的函数专门用于字符分类,便于我们**判断一个字符是属于什么类型的字符**👇🏻
用户11029137
2024/03/19
1200
C语言——字符函数和字符串函数(一)
C语言(字符、字符串函数)1
C语言中有一些专门作字符分类的函数,使用这些函数需要包含头文件 ctype.h 。
_小羊_
2024/10/16
810
C语言(字符、字符串函数)1
C语言进阶——字符串&&内存函数
  这是牛客网上的一道简单题:判断输入字符是否为字母,一般的解决方法是通过ASCII码判断,不过这样做的话判断表达式较长,此时我们可以利用C语言中的库函数isalpha(判断是否为字母) 来完成这个题目,不仅代码量少,而且通俗易懂。要实现这种效果,就需要学习C语言中的各种库函数,而本文会列出大多数字符串函数和内存函数的使用及其实现,如果你想学习C语言库函数或对字符串、内存有好奇之心,不妨仔细来看看吧!🎉🎉🎉
北 海
2023/07/01
4940
C语言进阶——字符串&&内存函数
C和C++中字符串说明与记录
目的C语言字符基本说明字符串声明与操作字符串常用函数说明属性复制合并替换查询比较类型检查类型转换
用户7886150
2021/02/17
1K0
C语言——字符串大小写互换
前言: 在C语言中,大小写字母相互转换是一个常见的操作。本文将详细介绍C语言中实现大小写字母相互转换的各种方法,并附上代码示例。
GG Bond1
2024/06/14
9890
C语言 | 字符数组
字符数组是用来存放字符数据的数组,字符数组中的一个元素存放一个字符,定义字符数组的方法和定义数值型数组的方法类似。
小林C语言
2021/04/12
5.9K0
C语言 | 字符数组
C语言和C++中的字符串(string)
C语言字符串是字符的数组。单字节字符串顺序存放各个字符串,并用'\0'来表示字符串结束。在C语言库函数中,有一系列针对字符串的处理函数,比如说strcpy()、sprintf()、stoi()等,只能用于单字节字符串,当然也有一些函数用于处理Unicode字符串,比如wcscpy()、swprintf()等
用户7886150
2021/02/16
3K0
c语言常见概念----
main函数式程序的入口,main有且仅有一个,即是一个项目中有多个.c文件,但只能有一个main函数(因为程序的入口只有一个)
凯子坚持C
2024/09/23
920
c语言常见概念----
C语言常见字符函数和字符串函数精讲
在C语言编程中,字符函数和字符串函数是处理文本数据不可或缺的工具。本文将详细介绍这两类函数的定义、功能、使用方法,并通过示例代码帮助读者更好地理解和应用这些函数。
平凡之路.
2024/10/09
1180
C语言常见字符函数和字符串函数精讲
C语言——J/字符函数 和 字符串函数
前言:在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数。
用户11015888
2024/03/11
1090
C语言——J/字符函数 和 字符串函数
C语言中常见库函数(1)——字符函数和字符串函数
在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语言标准库中提供了⼀系列库函数,接下来我们就学习一下这些函数。
Crossoads
2024/10/21
1110
C语言中常见库函数(1)——字符函数和字符串函数
相关推荐
C:字符函数与字符串函数-学习笔记
更多 >
LV.0
这个人很懒,什么都没有留下~
加入讨论
的问答专区 >
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    查看详情【社区公告】 技术创作特训营有奖征文
    本文部分代码块支持一键运行,欢迎体验
    本文部分代码块支持一键运行,欢迎体验