认识C语言 Day_3 >字符、字符串

简介: 认识C语言 Day_3 >字符、字符串

1.字符串

C语言中有字符(char)类型,但是没有字符串类型;那么在C语言在如何表示字符串呢

1.1 字符串的表示

"hello world\n"

像这样,用" "引起来的一串字符称为字符串;字符串的结束标志是一个'\0'的转义字符。

字符串其实就是一串字符,字符串是可以存放到字符数组里边的。

#include 'stdio.h'
int main(){
    char arr1[] = "abc";//直接用" "引起来
  char arr2[] = { 'a','b','c' };//字符用{}括起来,中间用逗号隔开
  char arr3[] = { 'a','b','c','\0' };
    return 0;
}

1.2 字符串的结束标志

在每个字符串的末尾都隐藏了一个'\0',利用VS2019中的监视(调试---窗口---监视)功能可以看出

当一个字符串真正遇到'\0'的时候,才认为这个字符串结束了;如下段代码的显示效果

#define _CRT_SECURE_NO_WARNINGS 1
#include "stdio.h"
int main()
{
  char arr1[] = "abc";//直接用" "引起来
  char arr2[] = { 'a','b','c' };//字符用{}括起来,中间用逗号隔开
  char arr3[] = { 'a','b','c','\0' };
  printf("%s\n", arr1);//打印字符串用%s
  printf("%s\n", arr2);
  printf("%s\n", arr3);
  return 0;
}

1.3 字符串的长度

注意:在计算字符串长度的时候'\0'是结束标志,不算作字符串的内容。

strlen( )函数是一个库函数,用来求字符串长度,统计的是字符串中'\0'之前的字符个数

我们可以利用strlen( )函数计算字符串的长度;如下段代码效果

'\0'之前的字符个数就是该字符串的长度,而arr2[ ]没有'\0',所以他的长度是随机的

注意:使用strlen( )函数的时候,需要头文件 #include "string.h"

2.转义字符

2.1 常用转义字符

这里我们解释一下'\\',他的效果是在屏幕上输出一个 "\";如下图代码效果

这里我们很明显能感受到,需要打印出"\",就得使用'\\'转义字符

2.2 特殊转义字符

\xhh:

\x后面跟两位十六进制数,该两位十六进制数的值即为对应字符的十六进制ASCII码值

\ddd:

斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制ASCII码值

2.3 转义字符的大小

一个转义字符就算作一个字符,因此一个转义字符的长度为1

3.注释

3.1 什么是注释

为了方便看懂代码,给代码的一段说明性文字;在编写C语言源代码时,应该多使用注释,这样有助于对代码的理解。在C语言中有两种注释方式:

  • 一种是以/*开始、以*/结束的块注释(block comment);
  • 另一种是以//开始、以换行符结束的单行注释(line comment)。

3.2 注释原则

  • 项目开发中,尽量保持代码注释规范和统一。
  • 注释方便了代码的阅读和维护。
  • 边写代码边注释,修改代码时要相应修改注释,保证注释和代码的一致性。
  • 注释要简洁明确,不要出现形容词。
  • 通过注释可以快速知道所写函数的功能,返回值,参数的使用。

4.ASCII表

4.1 ASCII值

4.1.1产生原因

在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码

4.1.2表达方式

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符

  • 0~31及127(共33个)是控制字符或通信专用字符(即不可打印字符)(其余为可显示字符)
  • 32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字
  • 65~90为26个大写英文字母
  • 97~122号为26个小写英文字母
  • 其余为一些标点符号、运算符号等
  • 后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号

有人将 ASCII 编码分成两部分:

  • 前 128 个字符称为基本 ASCII,包含常见字符;
  • 后 128 个字符称为扩展 ASCII,包含一些特殊字符。

4.2 特殊的ASCII值

ASCII表中可以记下部分特殊的值(字母从A到Z,从a到z,ASCII值依次递增)

‘A’:65

‘a’:97

‘0’(字符0):48

0(数字0):0

4.3 大小写转换小妙招

由于ASCII表中的大小写字母对应的ASCII值相差32,所以我们在编写大小写转换程序的时候,就非常便捷

大写转小写:ASCII值+32

小写转大写:ASCII值-32

相关文章
|
11天前
|
NoSQL 程序员 Redis
C语言字符串的设计缺陷
C语言字符串的设计缺陷
21 1
|
5天前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
19 5
|
5天前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
7 1
|
6天前
|
C语言
【C语言】:字符分类与转换函数
【C语言】:字符分类与转换函数
8 1
|
16天前
|
编译器 C语言 C++
【C语言基础】:字符函数和字符串函数-2
【C语言基础】:字符函数和字符串函数
|
16天前
|
C语言
【C语言基础】:字符函数和字符串函数-1
【C语言基础】:字符函数和字符串函数
|
24天前
|
C语言
C语言学习记录——鹏哥字符分类函数、字符转换函数
C语言学习记录——鹏哥字符分类函数、字符转换函数
15 2
|
24天前
|
安全 编译器 C语言
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
15 1
|
3天前
|
安全 C语言 开发者
C语言中的字符串
C语言中的字符串
6 0
|
9天前
|
C语言
C语言----字符函数和字符串函数(4)
C语言----字符函数和字符串函数