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

相关文章

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用Python实现一个简易计算器的新手指南

《使用Python实现一个简易计算器的新手指南》计算器是编程入门的经典项目,它涵盖了变量、输入输出、条件判断等核心编程概念,通过这个小项目,可以快速掌握Python的基础语法,并为后续更复杂的项目打下... 目录准备工作基础概念解析分步实现计算器第一步:获取用户输入第二步:实现基本运算第三步:显示计算结果进