C语言字符集

C语言程序设计基础(03)—— C语言的字符集和标识符 在C语言中,用规定的字符作为符号,描述了程序中变量、常量、数组、函数和数据类型等操作对象的名字。作为C语言开发者,应牢记C语言的字符集和标识符内容。 阅读详情

系列文章目录

  1. C语言综述1
  2. C语言字符集2
  3. C语言词法元素3
  4. C语言表达式4
  5. C语言语句5
  6. C语言声明6
  7. C语言预处理指令7
  8. C语言头文件8


前言

蓝色问号代表个人理解   绿色代表来源   红色问号代表尚有疑问

为什么要读标准?因为全面、权威,所有答案都在标准里面!
哪些人适合浏览本系列文章?不清楚C语言程序的组成,以及每个组成部分的详细内容
持续更新,码字不易,求点赞收藏


1、字符集

  1. 一是写入源文件的字符集,即当前编辑器页面使用的字符集?
  2. 二是执行环境中解释的字符集,执行字符集成员的值由实现定义,即执行时将写入源文件的字符集转换成执行时使用的字符集?
  3. 本节要求之外的任何其他字符都是特定于语言环境的

?

#include<bits/stdc++.h>
using namespace std;
int main(int argc,char *argv[]){
    printf("修仙");  //理论上UTF-8是支持中文的,但是printf的中文不对
    return 0;		//输出 淇粰
}
//字符集改成GB2312 出现上面的输出
#include<bits/stdc++.h>
using namespace std;

int main(int argc,char *argv[]){
    printf("淇�浠�");  //鐞嗚�轰笂UTF-8鏄�鏀�鎸佷腑鏂囩殑锛屼絾鏄痯rintf鐨勪腑鏂囦笉瀵�					
    //写入源文件的字符集是UTF-8,执行字符集可能根据的操作系统的字符集是GB2312
    return 0;
}

1.1、通用字符集

ASCII
  美国信息交换标准代码,等同于国际标准ISO/IEC 646。所以这是世界通用的编码,其他大部分字符集都兼容,所以不同字符集下的代码主体就不会有太大改变,而且编程语言都尽量避免使用地域特定的字符?

BinDecHex缩写/字符解释
00000000000NUL(null)空字符
00000001101SOH(start of headling)标题开始
00000010202STX (start of text)正文开始
00000011303ETX (end of text)正文结束
00000100404EOT (end of transmission)传输结束
00000101505ENQ (enquiry)请求
00000110606ACK (acknowledge)收到通知
00000111707BEL (bell)响铃
00001000808BS (backspace)退格
00001001909HT (horizontal tab)水平制表符
00001010100ALF (NL line feed, new line)换行键
00001011110BVT (vertical tab)垂直制表符
00001100120CFF (NP form feed, new page)换页键
00001101130DCR (carriage return)回车键
00001110140ESO (shift out)不用切换
00001111150FSI (shift in)启用切换
000100001610DLE (data link escape)数据链路转义
000100011711DC1 (device control 1)设备控制1
000100101812DC2 (device control 2)设备控制2
000100111913DC3 (device control 3)设备控制3
000101002014DC4 (device control 4)设备控制4
000101012115NAK (negative acknowledge)拒绝接收
000101102216SYN (synchronous idle)同步空闲
000101112317ETB (end of trans. block)传输块结束
000110002418CAN (cancel)取消
000110012519EM (end of medium)介质中断
00011010261ASUB (substitute)替补
00011011271BESC (escape)溢出
00011100281CFS (file separator)文件分割符
00011101291DGS (group separator)分组符
00011110301ERS (record separator)记录分离符
00011111311FUS (unit separator)单元分隔符
001000003220(space)空格
001000013321!
001000103422"
001000113523#
001001003624$
001001013725%
001001103826&
001001113927’
001010004028(
001010014129)
00101010422A*
00101011432B+
00101100442C,
00101101452D-
00101110462E.
00101111472F/
0011000048300
0011000149311
0011001050322
0011001151333
0011010052344
0011010153355
0011011054366
0011011155377
0011100056388
0011100157399
00111010583A:
00111011593B;
00111100603C<
00111101613D=
00111110623E>
00111111633F?
010000006440@
010000016541A
010000106642B
010000116743C
010001006844D
010001016945E
010001107046F
010001117147G
010010007248H
010010017349I
01001010744AJ
01001011754BK
01001100764CL
01001101774DM
01001110784EN
01001111794FO
010100008050P
010100018151Q
010100108252R
010100118353S
010101008454T
010101018555U
010101108656V
010101118757W
010110008858X
010110018959Y
01011010905AZ
01011011915B[
01011100925C|
01011101935D]
01011110945E^
01011111955F_
011000009660`
011000019761a
011000109862b
011000119963c
0110010010064d
0110010110165e
0110011010266f
0110011110367g
0110100010468h
0110100110569i
011010101066Aj
011010111076Bk
011011001086Cl
011011011096Dm
011011101106En
011011111116Fo
0111000011270p
0111000111371q
0111001011472r
0111001111573s
0111010011674t
0111010111775u
0111011011876v
0111011111977w
0111100012078x
0111100112179y
011110101227Az
011110111237B{
011111001247C
011111011257D}
011111101267E~
011111111277FDEL (delete)删除

UTF-8
  针对Unicode的一种可变长度字符编码,支持几乎所有字符。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用

GB2312
  适用于汉字处理、汉字通信等系统之间的信息交换,支持简体中文
在这里插入图片描述
Unicode
  它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求

1.2、C标准字符集

  基本源文件字符集和基本执行字符集

基本源文件字符集和基本执行字符集必须存在
26个大写字母A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
26个小写字母a b c d e f g h i j k l m n o p q r s t u v w x y z
10个十进制数字字符0 1 2 3 4 5 6 7 8 9
29个图形字符! " # % & ’ ( ) * + , - . / : ; < = > ? [ \ ] ^ _ { 竖线 } ~
空格字符
3个控制字符(横向制表\t、纵向制表\v、换页\f)
  1. 0之后的数字字符的值比前一个大1

  2. 在字符常量或字符串常量中,执行字符集的成员应由源字符集的相应成员或由反斜杠\后跟一个或多个字符组成的转义序列表示

  3. 执行字符集还包括告警\a、退格\b、回车\r、新行\n、所有位为零的空字符\0(用于终止字符串)、源文件指示每行文本结尾的某种方式视为单个新行字符

  4. Dos、Windows回车+换行(CR+LF)表示下一行

  5. UNIX/Linux换行符(LF)表示下一行

  6. 苹果机(MAC OS系统)回车符(CR)表示下一行

  若在源文卷(source file)中遇到其他字符,则其行为是未定义的。除非出现在字符常量(character constants)、串字面值(string literals)、前导文卷名(header names)、注释(comment)或永不被转换为词法元素(token)的预处理词法元素(token)中

  ASCII != C字符集

多字节字符

  源文件字符集中可包含多字节字符,用于表示扩展字符集的成员, 比如,UTF-8。执行字符集中也可以包含多字节字符,且它们的编码不一定要与源字符集中的多字节字符的编码相同, 比如,GB2312。

  1. 应存之前定义的单字节字符
  2. 任何其他成员的存在、意义和表示都是特定于语言环境的
  3. 多字节字符可以具有依赖于状态的编码,其中每个多字节字符序列以初始移位状态开始,并在序列中遇到特定多字节字符时进入其他实现定义的移位状态。在初始移位状态下,所有单字节字符保留其通常的解释,并且不会改变移位状态。序列中后续字节的解释是当前移位状态的函数?
  4. 所有位为零的字节应解释为与移位状态无关的空字符?
  5. 所有位为零的字节不得出现在多字节字符的第二个或后续字节中
  6. 源文件中注释、字符串、字符常量或头文件名应以初始移位状态开始和结束?
  7. 源文件中注释、字符串、字符常量或头文件名应由一系列有效的多字节字符组成?

三联符序列
  为了使代码能用任何非ASCII的字符集编写,但是有些字符集缺少这些字符。

在这里插入图片描述

2、字符输入?

在这里插入图片描述

3、字符显示

活动位置是显示设备上输出的下一个字符的位置,将可打印字符(由isprint定义)写入显示设备的是在活动位置显示该字符的图形表示,然后将活动位置前进到当前行的下一个位置。打印方向是特定于区域设置的。如果活动位置位于直线的最终位置(如果有),则行为未指定。

(警报)产生声音或可见警报激活位置不得改变
(退格)将活动位置移动到当前行上的上一个位置如果激活位置位于直线的初始位置,则行为未指定
(“表单馈送”)将活动位置移动到下一逻辑页开始处的初始位置
(“新行”)将活动位置移动到下一行的初始位置
(“回车”)将激活位置移动到当前行的初始位置
(“水平制表符”)将活动位置移动到当前行上的下一个水平制表位置如果活动位置位于或超过上次定义的水平制表位置,则行为未指定。
(“垂直选项卡”)将活动位置移动到下一个垂直制表位置的初始位置如果活动位置位于或超过上次定义的垂直制表位置,则行为未指定。

 
 
 
 
 
 
 
 


以上纯属个人观点,欢迎大佬批评指正
  1. https://blog.youkuaiyun.com/init33/article/details/121258745 ↩︎

  2. https://blog.youkuaiyun.com/init33/article/details/121318734 ↩︎

  3. https://blog.youkuaiyun.com/init33/article/details/121319873 ↩︎

  4. https://blog.youkuaiyun.com/init33/article/details/121323883 ↩︎

  5. https://blog.youkuaiyun.com/init33/article/details/121323943 ↩︎

  6. https://blog.youkuaiyun.com/init33/article/details/121323932 ↩︎

  7. https://blog.youkuaiyun.com/init33/article/details/121323958 ↩︎

  8. https://editor.youkuaiyun.com/md/?articleId=121323994 ↩︎

C 语言中的字符集 此集中的每个字符都分配了一个从 0 到 127 的唯一数字代码,可用于表示 C 程序中的字符。需要注意的是,C 标准库(如 )提供了用于字符处理和操作的函数和宏,从而可以更轻松地在 C 程序中使用字符和字符串。它们包括空格 (' ')、制表符 ('\t')、换行符 ('\n')、回车符 ('\r') 和表单进纸 ('\f')。这些字符包括不可打印的字符,如转义字符 ('\e') 和其他用于控制和格式设置的字符,如 '\b'(退格)、'\t'(制表符)和 '\n'(换行符)。 阅读详情

相关推荐

WIN10环境下STK11.5(含Analyzer, EOIR, Scheduler插件)的安装与破解全攻略

本文提供了一份详细的WIN10环境下STK11.5软件及其核心插件(Analyzer, EOIR, Scheduler)的安装与破解全攻略。内容涵盖从安装包准备、系统环境检查,到基础版安装、插件部署、破解文件替换及许可证配置的完整步骤,并附有常见问题排错指南,旨在帮助用户免费搭建功能齐全的卫星仿真分析环境。

solidity8miner的博客 756

C语言从头学53——字符集

在使用VS编程时,在项目设置中有一个关于字符集的选项。一是Unicode字符集(VS默认的字符集),二是多字节字符集。本文围绕这两个字符集做一简单介绍。

m0_72128260的博客 1220

SAP MIGO屏幕增强的具体实施步骤介绍(SE19:MB_MIGO_BADI) <转载>

1.MIGO抬头屏幕增强具体增强实施步骤1.1.创建存储抬头客制化数据的增强表1.2.创建增强结构1.3.创建函数组ZMM_MIGO1.3.1.定义全局变量1.3.2.创建数据处理函数1.4.创建字屏幕9001屏幕PBOendif.endloop.1.5.实施新BADI增强SE19创建BADI实施双击实施类ZCL_MIGO_EN_01exportingendif.endmethod.endif.endif.exportingendmethod.

qq_55488207的博客 4510

C语言的字符集【篇】

小写字母 a~z 共 26 个。大写字母 A~Z 共 26 个。0~9 共 10 个。

u013820168的博客 356

WorldPop数据集

WorldPop数据集介绍

qq_43874102的博客 1万+

告别环境配置噩梦:VSCode + MinGW 下 OpenGL (glad/glm/glfw) 一站式配置指南(含常见错误排查)

本文提供了一份详细的VSCode与MinGW下OpenGL开发环境配置指南,涵盖glad、glm和glfw三大核心库的安装与调试。通过逐步指导解决常见错误,帮助开发者快速搭建高效的OpenGL开发环境,特别适合初学者避免环境配置中的常见陷阱。

weixin_42557803的博客 490

C语言完整笔记

C语言的字符集 C语言字符集由字母,数字,空格,标点和特殊字符组成。 1.字母 小写字母a~z共26个 大写字母A~Z共26个 2.数字 0~9共10个 3.空白符 空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽略不计。因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方

The Life with iOS 8923

matlab实现MSK调制解调

文章目录一、要求二、设计三、代码四、结果五、结论 一、要求 画出MSK信号产生的信息、I路、Q路信号对比图以及接收端解调的信息恢复的对比图。 二、设计 1.MSK调制 2.MSK解调 三、代码 clear all;clc; N=20; T=1; fc=10; Fs=100; bitstream=randi([0,1],1,N); bitstream1=2*bitstream-1; b0=1; for i=1:N encode_output(i)=b0*bitstream

Time_book的博客 1万+

高级语言程序设计(C语言)----第二章 C语言基础知识

高级语言程序设计(C语言)----第二章 C语言基础知识2.1. C语言发展和特点2.1.1. 发展2.1.2. 特点2.2. C语言基本词法2.2.1. 字符集2.2.2. 关键字2.2.3. 标识符2.2.4. 词汇分类2.3. C语言基本语法分类2.4. C程序基本组成2.4.1. C程序的概念及组成特点2.4.2. C语言结构特点2.5. C程序开发环境2.5.1. C程序的运行步骤:2.5.2. C程序的运行2.5.3. C程序的调试 2.1. C语言发展和特点 2.1.1. 发展 ❖ C语言源

zhangqq_0312的博客 1611

VLA仿真平台:Isaac sim、MuJoCo

在虚拟仿真领域,VLA(Virtual Learning Agent)仿真器是用于开发和训练虚拟机器人代理的环境,它们为机器人提供了一个平台来进行各种任务的模拟和学习,特别是在强化学习(RL)中。两款广泛应用的仿真器是和。这两者各有其特点和优势,适用于不同类型的机器人研究和开发。

u013250861的博客 861

Python爬虫模拟登录京东并抓取商品数据

京东是一个拥有海量商品数据的电子商务平台。作为爬虫开发者,能够抓取这些数据将为我们提供很多机会进行数据分析、价格预测、市场调研等工作。然而,京东的反爬虫机制非常强大,包括但不限于验证码、动态加载页面、IP封禁等。因此,想要通过Python爬虫抓取京东的数据并不容易。在本文中,我们将从分析京东的登录机制开始,逐步介绍如何使用Python中的各种工具,如。

2201_76125261的博客 1828

C语言学习(四)ASCII、GB2312、GBK等编码以及Unicode等字符集

目录(一)简介(二)ASCII编码拉丁字母ASCII编码介绍ASCII码表ASCII码和C语言(三)GB2312编码和GBK编码,将中文存入计算机 (一)简介 之前我们说过,计算机是以二机制形式来存储的,他只认识0和1两个数字。我们在屏幕上看到的文字在存储前已经被转换成了二进制,在显示时也要根据二进制找到对应的字符。 所以,特定的字符必然对应着固定的二进制,否则在转换时会造成混乱。那么,怎样将文字与二进制对应起来呢?这就需要一套规范,计算机公司和软件开发公司都要遵守,这样的一套规范就被称为字符集(Chara

jayer的博客 6275

高通Camx功能feature分析之一:remosaic功能导通

本文详细介绍了S5K3P9S传感器前置场景中SW Remosaic功能的实现流程。首先需在sensorxml中确认支持SW Remosaic类型,并集成remosaic相关库文件(libremosaic_wrapper.so等)。核心实现包括:初始化阶段调用InitFrontSamsungRemosaic();执行线程DeferFrontInitThread()读取校准数据;通过DoSamsungRemosaic()执行remosaic算法处理;最后在析构函数中调用DeinitFrontSamsungRem

1700

C语言中字符集的含义,C语言字符集

C语言字符集编译器在转换源程序代码时,所处的环境称为翻译环境(translation environment);编译后程序执行时,所处的环境成为运行环境(execution environment)。对C语言来说,翻译环境和运行环境是不同的。因此,C语言定义了两个字符集(character set): 源代码字符集与运行字符集。源代码字符集(source character set)是用于组成C源...

weixin_33448555的博客 1087

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

c语言字符集称号,C语言字符集

C语言字符集编译器在转换源程序代码时,所处的环境称为翻译环境(translation environment);编译后程序执行时,所处的环境成为运行环境(execution environment)。对C语言来说,翻译环境和运行环境是不同的。因此,C语言定义了两个字符集(character set): 源代码字符集与运行字符集。源代码字符集(source character set)是用于组成C源...

weixin_35718242的博客 175

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

c语言 字符集 特殊字符_C语言字符集

c语言 字符集 特殊字符Every language has the set of the characters which are used to form a sentence to write a program/code, we cannot use any character except the valid set of the characters defined by the pr...

cumt30111的博客 6313

c语言字符集的作用,C语言的字符集有哪些

C语言的字符集有哪些C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。以下是小编为大家搜索整理的C语言的字符集有哪些,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!字符是组成语言的最基本的元素。C语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。1.字母  小写字母a~z共26个,大...

weixin_32429589的博客 368

【C程序设计】C语言字符集概述

字符在内存中的存储通常是按照它们在字符集中的编码来存储的。例如,在ASCII字符集中,字符'A'的ASCII码是65,它在内存中就以二进制形式65存储。随着技术的发展,字符集的标准和实现也在不断地演进,程序员需要不断学习和适应新的标准。在C语言中,字符集的概念对于理解和使用字符数据类型至关重要。多字节字符集(MBCS)是另一种表示字符的方式,它使用1到多个字节来表示字符,这在处理非ASCII字符时非常有用。字符集在C语言编程中的应用非常广泛,从简单的文本处理到复杂的国际化软件,都需要对字符集有深入的理解。

m0_69690816的博客 1647

c语言的基本字符集为什么码字符集,C语言源代码字符集和运行字符集

编译器转换程序源代码时,所处的环境称为翻译环境(translation environment);编译后程序执行时,所处的环境称为运行环境(execution environment)。对C语言来说,翻译环境和运行环境是不同的。因此,C语言定义了两个字符集(character set):源代码字符集与运行字符集。源代码字符集(source character set)是用于组成C源代码的字符集合;...

weixin_29534463的博客 467

c语言字符集的作用,【C语言】字符集和词汇

C语言字符集和词汇一、相关基础知识字符是组成语言的最基本的元素词汇,又称语汇,是一种语言里所有的(或特定范围的)词和固定短语的总和二、具体内容C语言字符集由:字母、数字、空格、标点和特殊字符组成(1)字母:小写a到z共26个,大写A到Z共26个。(2)数字:0到9共10个(3)空白符:空格符、制表符、换行符等统称为空白符,空白符只在字符常量和字符串中起作用,在其他地方出现时,只起间隔作用,编译程...

weixin_39611937的博客 612

C语言如何查看和修改MySQL使用的字符集

最近用C语言连接数据库,插入数据时如果数据中存在汉字,插入会失败。最后搞明白了是MySQL使用的字符集的问题。         1、如何查看当前连接的数据库使用的字符集 MySQL提供的接口函数prototype为: void        STDCALL mysql_get_character_set_info(MYSQL *mysql,

子虚 3483

第一节:C语言基本字符集

C语言基本字符集分为源字符集(书写C语言源文件所用的字符集)和执行字符集(C语言程序执行期间解释的字符集)源字符集包括字母(52)、数字(10)、格式符(4)、特殊字符(29)。执行字符集在源字符集的基础上还包括空字符、行末标志符(换行符)、警报符、退格符(BS)和回车符(CR)。1、字母:52个大小写拉丁字母a、  b、  c、  d、  e、  f、  g、  h、  i、   j、   k、

C语言大杂烩 1万+

C语言字符集中可显示字符,1.属于C语言字符集中可显示字符的是()

1.属于C语言字符集中可显示字符的是()0KUKU勇2014.07.08浏览139次分享举报一.选项1.属于C语言字符集中可显示字符的是()A.\ B.\n C.\t D.\b2.不属于C语言字符集中的符号是()A.\ B.上下一点C.小于等于号 D.^3.下列选项中,不是转义字符的是( )A.\\ B.\’ C.074 D.\04.下列选项中,正确的是转义字符是( )A.\oF1 B.\’’ C...

weixin_42365176的博客 760

【C语言】字符集和词汇

C语言字符集和词汇 一、相关基础知识 字符是组成语言的最基本的元素 词汇,又称语汇,是一种语言里所有的(或特定范围的)词和固定短语的总和 二、具体内容 C语言字...

diezhongchen8956的博客 407

跨平台C语言字符集转换工具

跨平台C语言字符集转换工具 去发现同类优质开源项目:https://gitcode.com/ 简介 本项目提供了一种基于纯C语言的跨平台字符集转换解决方案,支持GBK与UTF8之间的相互转换,以及ANSI与UTF8之间的相互转换。该工具能够在Windows和Linux操作系统上无缝运行,为开发者提供便捷的字符编码转换功能。 特性 跨平台兼容性:支持Windows和Linux操作系统。 纯C实现:...

gitblog_06700的博客 304

c语言字符集由,C语言的字符集有哪些

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。以下是小编为大家搜索整理的,希望能给大家带来帮助!更多精彩内容请及时***应届毕业生考试网!字符是组成语言的最基本的元素。C语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。1.字母  小写字母a~z共26个,大写字母A~Z共26个2.数字  0~9共1...

weixin_31328555的博客 1721
上一篇: C语言综述
下一篇: C语言词法元素
init33
博客等级 码龄5年 18粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值