【c语言】字符串与字符数组

字符型存储

ASCII码表格

二进制

十进制

十六进制

字符/缩写

解释

00000000

0

00

NUL (NULL)

空字符

00000001

1

01

SOH (Start Of Headling)

标题开始

00000010

2

02

STX (Start Of Text)

正文开始

00000011

3

03

ETX (End Of Text)

正文结束

00000100

4

04

EOT (End Of Transmission)

传输结束

00000101

5

05

ENQ (Enquiry)

请求

00000110

6

06

ACK (Acknowledge)

回应/响应/收到通知

00000111

7

07

BEL (Bell)

响铃

00001000

8

08

BS (Backspace)

退格

00001001

9

09

HT (Horizontal Tab)

水平制表符

00001010

10

0A

LF/NL(Line Feed/New Line)

换行键

00001011

11

0B

VT (Vertical Tab)

垂直制表符

00001100

12

0C

FF/NP (Form Feed/New Page)

换页键

00001101

13

0D

CR (Carriage Return)

回车键

00001110

14

0E

SO (Shift Out)

不用切换

00001111

15

0F

SI (Shift In)

启用切换

00010000

16

10

DLE (Data Link Escape)

数据链路转义

00010001

17

11

DC1/XON
(Device Control 1/Transmission On)

设备控制1/传输开始

00010010

18

12

DC2 (Device Control 2)

设备控制2

00010011

19

13

DC3/XOFF
(Device Control 3/Transmission Off)

设备控制3/传输中断

00010100

20

14

DC4 (Device Control 4)

设备控制4

00010101

21

15

NAK (Negative Acknowledge)

无响应/非正常响应/拒绝接收

00010110

22

16

SYN (Synchronous Idle)

同步空闲

00010111

23

17

ETB (End of Transmission Block)

传输块结束/块传输终止

00011000

24

18

CAN (Cancel)

取消

00011001

25

19

EM (End of Medium)

已到介质末端/介质存储已满/介质中断

00011010

26

1A

SUB (Substitute)

替补/替换

00011011

27

1B

ESC (Escape)

逃离/取消

00011100

28

1C

FS (File Separator)

文件分割符

00011101

29

1D

GS (Group Separator)

组分隔符/分组符

00011110

30

1E

RS (Record Separator)

记录分离符

00011111

31

1F

US (Unit Separator)

单元分隔符

00100000

32

20

(Space)

空格

00100001

33

21

!

 

00100010

34

22

"

 

00100011

35

23

#

 

00100100

36

24

$

 

00100101

37

25

%

 

00100110

38

26

&

 

00100111

39

27

'

 

00101000

40

28

(

 

00101001

41

29

)

 

00101010

42

2A

*

 

00101011

43

2B

+

 

00101100

44

2C

,

 

00101101

45

2D

-

 

00101110

46

2E

.

 

00101111

47

2F

/

 

00110000

48

30

0

 

00110001

49

31

1

 

00110010

50

32

2

 

00110011

51

33

3

 

00110100

52

34

4

 

00110101

53

35

5

 

00110110

54

36

6

 

00110111

55

37

7

 

00111000

56

38

8

 

00111001

57

39

9

 

00111010

58

3A

:

 

00111011

59

3B

;

 

00111100

60

3C

<

 

00111101

61

3D

=

 

00111110

62

3E

>

 

00111111

63

3F

?

 

01000000

64

40

@

 

01000001

65

41

A

 

01000010

66

42

B

 

01000011

67

43

C

 

01000100

68

44

D

 

01000101

69

45

E

 

01000110

70

46

F

 

01000111

71

47

G

 

01001000

72

48

H

 

01001001

73

49

I

 

01001010

74

4A

J

 

01001011

75

4B

K

 

01001100

76

4C

L

 

01001101

77

4D

M

 

01001110

78

4E

N

 

01001111

79

4F

O

 

01010000

80

50

P

 

01010001

81

51

Q

 

01010010

82

52

R

 

01010011

83

53

S

 

01010100

84

54

T

 

01010101

85

55

U

 

01010110

86

56

V

 

01010111

87

57

W

 

01011000

88

58

X

 

01011001

89

59

Y

 

01011010

90

5A

Z

 

01011011

91

5B

[

 

01011100

92

5C

\

 

01011101

93

5D

]

 

01011110

94

5E

^

 

01011111

95

5F

_

 

01100000

96

60

`

 

01100001

97

61

a

 

01100010

98

62

b

 

01100011

99

63

c

 

01100100

100

64

d

 

01100101

101

65

e

 

01100110

102

66

f

 

01100111

103

67

g

 

01101000

104

68

h

 

01101001

105

69

i

 

01101010

106

6A

j

 

01101011

107

6B

k

 

01101100

108

6C

l

 

01101101

109

6D

m

 

01101110

110

6E

n

 

01101111

111

6F

o

 

01110000

112

70

p

 

01110001

113

71

q

 

01110010

114

72

r

 

01110011

115

73

s

 

01110100

116

74

t

 

01110101

117

75

u

 

01110110

118

76

v

 

01110111

119

77

w

 

01111000

120

78

x

 

01111001

121

79

y

 

01111010

122

7A

z

 

01111011

123

7B

{

 

01111100

124

7C

|

 

01111101

125

7D

}

 

01111110

126

7E

~

 

01111111

127

7F

DEL (Delete)

删除

每个字符在计算机中都有相对应的ASCII码值

在char型中,取值范围为-128~127

若字符的ASCII码值超出这个范围,将会发生类型溢出

若是想要避免类型溢出,可以将取值范围改为0~256

即使用unsigned char进行命名字符,可以避免存储时的类型溢出

字符常量区分大小写,且对于字符进行命名时要用单引号括住

转义字符

当我们进行数据输出时,偶尔会碰到某个字符自动与printf中所用到的其他字符自动匹配从而导致无法正确输出或者输出效果与理想不符的情况出现,我们在这时就可以用字符转义序列

转义字符

意义

ASCII码值(十进制)

\a

响铃(BEL)

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

空字符(NUL)

000

\ddd

1到3位八进制数所代表的任意字符

三位八进制

\xhh

十六进制所代表的任意字符

十六进制

实例

输出"I'm your father!!!"

printf("\"I\'m your father!!!\"");

字符型的输入

1.单个字符输入提前结束

scanf与getchar都可以用来对于单个字符的输入

但是当遇到一行输入多个字符时

我们的输入常常与理想状况不符

一般表现为提前结束输入

这是因为电脑自动读入的我们输入数据时分隔数据所用的空格

因此可以在%c与%c之间加上空格就能够解决这个问题

char a,b,c;

scanf("%c %c %c",&a,&b,&c);

2.首先读入整数再输入字符

方法一:输入n值后,使用getchar();来吸收空格

char a;

int n;

scanf("%d",&n);

getchar();

scanf("%c",&a);

方法二:使用赋值抑制符抑制空格的输入

char a;

int n;

scanf("%d",&n);

scanf("%*c%c",&a);

方法三:在scanf的输入过程中加入空格符

char a;

int n;

scanf("%d",&n);

scanf(" %c",&a);

对于字符和字符串进行处理的函数

由文章开头的ACSII码值表可以得出结论:

在十进制中大写字母的ASCII码值加32即为小写字母的ASCII码值

因此出现的手动转换的方式

if(a>='A'&&a<='Z')

{

    a=a+32;//大写字母转换为小写字母

}

if(a>='a'&&a<='z')

{

    a=a-32;//小写字母转换为大写字母

}

当然,也有专门处理字符类型的函数存在

在预处理时要添加#include<ctype.h>

单字节

宽字节

描述

isalnum

iswalnum

是否为字母数字

isalpha

iswalpha

是否为字母

islower

iswlower

是否为小写字母

isupper

iswupper

是否为大写字母

isdigit

iswdigit

是否为数字

isxdigit

iswxdigit

是否为16进制数字

iscntrl

iswcntrl

是否为控制字符

isgraph

iswgraph

是否为图形字符(例如,空格、控制字符都不是)

isspace

iswspace

是否为空格字符(包括制表符、回车符、换行符等)

isblank

iswblank

是否为空白字符(C99/C++11新增)(包括水平制表符)

isprint

iswprint

是否为可打印字符

ispunct

iswpunct

是否为标点

tolower

towlower

转换为小写

toupper

towupper

转换为大写

在表格当中:

转换函数的用法为

char a='a';

a=toupper(a);

输出字符a即为A

判断类型函数一般用在if语句中

若判断为真则返回1,判断为假则返回0

即if内语句是否执行,从而完成进一步处理

字符数组的初始化与字符串的输入与输出

在一维数组与二维数组中的字符数组章节之中已经有了详细的解释

字符串函数

在函数的相关知识中的字符串函数已经有了基本的解释

当然也有要补充的地方

strncpy(字符串1,字符串2,n);

复制字符串2最多n个字符到字符串1中

strncmp(字符串1,字符串2,n);

将字符串1前n个字符与字符串2比较

strncat(字符串1,字符串2,n);

把字符串2的最多n个字符插入到字符串1的有效字符后面

strrev(字符串);

将字符串进行倒叙处理

strchr(字符串,所要查找的元素)

若查找到则输出该元素所在位置,若未查找则返回0值

stdio.h中的字符串函数

  1. sprintf(字符数组名,格式字符串,输出项列表);
sprintf(a,"The price is %d",d);//仅仅将内容保存在字符数组a里而不是输出在屏幕
  1. sscanf(字符数组名,格式字符串,输出项列表);
char a[100]={"45612319890308"};

int year,month,day;

sscanf(a,"%*6d%4d%2d%2d",&year,&month,&day);

printf("%4d-%02d-%02d",year,month,day);

sscanf用于读入从已存储的字符串之中抽取数据进行储存到变量之中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/943112.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL子查询和having实例

有2个表如下&#xff1b;一个是站点信息&#xff0c;一个是站点不同时间的访问量&#xff0c; 现在要获取总访问量大于200的网站&#xff1b; 先执行如下sql&#xff0c;不包括having子句看一下&#xff0c;获得的是所有站点的总访问量&#xff1b; 这应是一个子查询&#xf…

【seatunnel】数据同步软件安装

【seatunnel】数据同步软件安装 下载 wget https://dlcdn.apache.org/seatunnel/2.3.8/apache-seatunnel-2.3.8-bin.tar.gz wget https://dlcdn.apache.org/seatunnel/seatunnel-web/1.0.2/apache-seatunnel-web-1.0.2-bin.tar.gz1、安装seatunnel Server 解压 tar zxvf ap…

散斑/横向剪切/迈克尔逊/干涉条纹仿真技术分析

摘要 本博文提供了多种数据类型的干涉条纹仿真&#xff0c;并展示了它们对应的散斑干涉条纹。还分别给出了横向剪切干涉以及剪切散斑干涉条纹的仿真。 一、迈克尔逊干涉与散斑干涉仿真 下图为干涉条纹与对应的散斑干涉条纹的仿真示意图。其中&#xff0c;干涉条纹可认为是源…

如何通过采购管理系统实现智能化采购?

随着人工智能、大数据等技术的快速发展&#xff0c;采购管理逐步迈入智能化时代。智能化采购不仅提升了效率&#xff0c;还为企业提供了更精准的采购决策支持。本文将从智能化采购的优势出发&#xff0c;探讨采购管理系统如何助力企业实现这一目标。 文中用到的采购管理系统&a…

【论文阅读笔记】IC-Light

SCALING IN-THE-WILD TRAINING FOR DIFFUSION-BASED ILLUMINATION HARMONIZATION AND EDITING BY IMPOSING CONSISTENT LIGHT TRANSPORT 通过施加一致的光线传输来扩展基于扩散模型的真实场景光照协调与编辑训练 前言摘要引言相关工作基于学习的基于扩散模型的外观和光照操纵光…

594: Maximum Tape Utilization Ratio

解法&#xff1a; 对于该题有以下错误&#xff08;敬希评论区指正 1.dp定义在全局会wa struct node {int count; // 当前容量下能够存储的程序数量int sum; // 当前容量下所占用的磁带长度vector<int> path; // 当前容量下选择的程序的路径&#xff08;存放的程序…

流量主微信小程序工具类去水印

工具类微信小程序流量主带后台管理&#xff0c;可开通广告&#xff0c;带自有后台管理&#xff0c;不借助第三方接口 介绍 支持抖音&#xff0c;小红书&#xff0c;哔哩哔哩视频水印去除&#xff0c;功能实现不借助第三方平台。可实现微信小程序流量主广告变现功能&#xff0c…

04软件测试需求分析案例-用户登录

通读文档&#xff0c;提取信息&#xff0c;提出问题&#xff0c;整理为需求。 从需求规格说明、设计说明、配置说明等文档获取原始需求&#xff0c;通读原始需求&#xff0c;分析有哪些功能&#xff0c;每种功能要完成什么业务&#xff0c;业务该如何实现&#xff0c;业务逻辑…

DX12 快速教程(2) —— 渲染天蓝色窗口

快速导航 新建项目 "002-DrawSkyblueWindow"DirectX 12 入门1. COM 技术&#xff1a;DirectX 的中流砥柱什么是 COM 技术COM 智能指针 2.创建 D3D12 调试层设备&#xff1a;CreateDebugDevice什么是调试层如何创建并使用调试层 3.创建 D3D12 设备&#xff1a;CreateD…

《计算机组成及汇编语言原理》阅读笔记:p116-p120

《计算机组成及汇编语言原理》学习第 7 天&#xff0c;p116-p120 总结&#xff0c;总计 5 页。 一、技术总结 1.CPU优化 (1)increase overall performance number 例如&#xff1a;16位电脑提升到32位电脑。 (2)multiprocessing One way to make computers more useful i…

【蓝桥杯每日一题】12.18

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x 从今天开始&#xff0c;笨狐狸&#xff0c;啊呸&#xff0c;本狐狸要开始漫长的蓝桥杯备战啦&#xff0c;将会长期更新每日一题这个专栏&#xff0c;直到蓝桥杯结束&#xff0c;各位一起…

Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印

图样&#xff1a; 就可以导入了 上代码 import tkinter as tk from tkinter import ttk import sqlite3 from datetime import datetime from tkinter import messagebox, filedialog import pandas as pd import reclass OrderSystem:def __init__(self, root):self.root r…

【机器学习案列】车牌自动识别系统:基于YOLO11的高效实现

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

SpringBoot(二)—— yaml配置文件

接上篇&#xff0c;我们对SpringBoot有了基本的了解&#xff0c;接下来探究配置文件。 目录 二、配置文件 1. SpringBoot热部署 2. 配置文件 2.1 配置文件的作用 2.2 YAML 配置文件 2.3 YAML 与 XML 比较 3. YAML语法 3.1 键值对 3.2 值的写法 3.3 对象/Map&#x…

NFV架构

通信&#xff08;CT&#xff09;的NFV技术是借鉴了IT行业的云计算概念&#xff0c;实际大规模应用在4G时代。 区别是增加了以下几点 1、NFVI是openstack的电信增强版本&#xff0c;除了nova cinder nuetru等增加了电信专用组件。 2、设计增加了mano&#xff0c;包括了VIM、NFVO…

关于Edge浏览器的设置

这里记录几条个人比较习惯的使用浏览器方式的设置&#xff0c;主要是edge浏览器 1. 黑背景色 修改整个浏览器的背景色为黑色&#xff0c;而不是主题&#xff0c;只有边框颜色改变地址栏输入edge://flags/#enable-force-dark&#xff0c;将Default 改为 Enabled&#xff1b;如…

Elasticsearch:什么是查询语言?

查询语言定义 查询语言包括数据库查询语言 (database query language - DQL)&#xff0c;是一种用于查询和从数据库检索信息的专用计算机语言。它充当用户和数据库之间的接口&#xff0c;使用户能够管理来自数据库管理系统 (database management system - DBMS) 的数据。 最广…

Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)

Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果&#xff0c;Kotlin&#xff08;3&#xff09; import android.content.Context import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Canvas impor…

《信管通低代码信息管理系统开发平台》Linux环境安装说明

1 简介 信管通低代码信息管理系统应用平台提供多环境软件产品开发服务&#xff0c;包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发&#xff0c;满足其独特需求。无论是简单的应用还是复杂的系统&#xff…

jetson Orin nx + yolov8 TensorRT 加速量化 环境配置

参考【Jetson】Jetson Orin NX纯系统配置环境-CSDN博客 一 系统环境配置&#xff1a; 1.更换源&#xff1a; sudo vi /etc/apt/sources.list.d/nvidia-l4t-apt-source.list2.更新源&#xff1a; sudo apt upgradesudo apt updatesudo apt dist-upgrade sudo apt-get updat…