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

2024-09-06 02:12

本文主要是介绍C语言新手小白详细教程(8)ASCll编码和字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述 🌏个人博客主页:意疏-CSDN博客 在这里插入图片描述

希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~

阅读指南:

  • 开篇说明
    • ASCll编码
    • 字符串


开篇说明

本章节我们学习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编码

 #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编码表 较长,读者可以拖动目录自行阅读。
十进制十六进制字符描述
00x00NUL空字符
10x01SOH标题开始
20x02STX正文开始
30x03ETX正文结束
40x04EOT传输结束
50x05ENQ询问
60x06ACK确认
70x07BEL响铃
80x08BS退格
90x09HT水平制表符
100x0ALF换行
110x0BVT垂直制表符
120x0CFF换页
130x0DCR回车
140x0ESO移出
150x0FSI移入
160x10DLE数据链路转义
170x11DC1设备控制1
180x12DC2设备控制2
190x13DC3设备控制3
200x14DC4设备控制4
210x15NAK否定
220x16SYN同步空闲
230x17ETB传输块结束
240x18CAN取消
250x19EM介质结束
260x1ASUB替换
270x1BESC转义
280x1CFS文件分隔符
290x1DGS组分隔符
300x1ERS记录分隔符
310x1FUS单元分隔符
320x20SP空格
330x21!感叹号
340x22"双引号
350x23#井号
360x24$美元符号
370x25%百分号
380x26&和号
390x27单引号
400x28(左括号
410x29)右括号
420x2A*星号
430x2B+加号
440x2C,逗号
450x2D-减号
460x2E.句号
470x2F/斜杠
480x300数字0
490x311数字1
500x322数字2
510x333数字3
520x344数字4
530x355数字5
540x366数字6
550x377数字7
560x388数字8
570x399数字9
580x3A:冒号
590x3B;分号
600x3C<小于号
610x3D=等于号
620x3E>大于号
630x3F?问号
640x40@艾特符号
650x41A大写字母A
660x42B大写字母B
670x43C大写字母C
680x44D大写字母D
690x45E大写字母E
700x46F大写字母F
710x47G大写字母G
720x48H大写字母H
730x49I大写字母I
740x4AJ大写字母J
750x4BK大写字母K
760x4CL大写字母L
770x4DM大写字母M
780x4EN大写字母N
790x4FO大写字母O
800x50P大写字母P
810x51Q大写字母Q
820x52R大写字母R
830x53S大写字母S
840x54T大写字母T
850x55U大写字母U
860x56V大写字母V
870x57W大写字母W
880x58X大写字母X
890x59Y大写字母Y
900x5AZ大写字母Z
910x5B[左方括号
920x5C|反斜杠
930x5D]右方括号
940x5E^脱字符
950x5F_下划线
960x60`反引号
970x61a小写字母a
980x62b小写字母b
990x63c小写字母c
1000x64d小写字母d
1010x65e小写字母e
1020x66f小写字母f
1030x67g小写字母g
1040x68h小写字母h
1050x69i小写字母i
1060x6Aj小写字母j
1070x6Bk小写字母k
1080x6Cl小写字母l
1090x6Dm小写字母m
1100x6En小写字母n
1110x6Fo小写字母o
1120x70p小写字母p
1130x71q小写字母q
1140x72r小写字母r
1150x73s小写字母s
1160x74t小写字母t
1170x75u小写字母u
1180x76v小写字母v
1190x77w小写字母w
1200x78x小写字母x
1210x79y小写字母y
1220x7Az小写字母z
1230x7B{左花括号
1240x7C
1250x7D}右花括号
1260x7E~波浪号
1270x7FDEL删除

字符串

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

" i am happy ! "

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

#include <stdio.h>int main(){char ch[6];//定义一个字符数组,因为要输入'\0',所以长度要比字符串大 1scanf("%s",ch);//数组名前不加&,表示是地址,而不是指针printf("%s\n",ch);return 0;
}

结果为:
在这里插入图片描述

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

char name[40];

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

  • 代码如下:
#include <stdio.h>int main(){char name[40];printf("请输入你的名字: ");scanf("%s", name);//字符串转换说明%s //数组名前不加&,C语言中数组名代表数组第一个元素的地址printf("我的名字是 %s!\n", name);return 0;
}

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


在这里插入图片描述

意气风发,漫卷疏狂
学习是成长的阶梯,每一次`的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中

如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
您的支持是我前行的动力。听说点赞会增加自己的运气,希望您每一天都能充满活力!

愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
logo
我是意疏 下次见!

这篇关于C语言新手小白详细教程(8)ASCll编码和字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140709

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill