认识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

相关文章
|
25天前
|
存储 算法 C语言
【C语言】字符常量详解
字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。
110 11
|
25天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
49 10
|
25天前
|
存储 C语言 开发者
【C语言】格式化输出占位符及其标志字符详解(基于ISO/IEC 9899:2024)
在C语言中,格式化输出通过 `printf` 函数等格式化输出函数来实现。格式说明符(占位符)定义了数据的输出方式,标准ISO/IEC 9899:2024(C23)对这些格式说明符进行了详细规定。本文将详细讲解格式说明符的组成部分,包括标志字符、宽度、精度、长度修饰符和类型字符,并适当增加表格说明。
41 6
|
28天前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
88 4
|
2月前
|
C语言
C语言字符(串)函数
C语言字符(串)函数
|
2月前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
2月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
3月前
|
存储 C语言
【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串
本文介绍了C语言中字符数组的初始化方法及其在函数间传递的注意事项。字符数组初始化有两种方式:逐个字符赋值或整体初始化字符串。实际工作中常用后者,如`char c[10]="hello"`。示例代码展示了如何初始化及传递字符数组,并解释了为何未正确添加结束符`\0`会导致乱码。此外,还讨论了`scanf`函数读取字符串时忽略空格和回车的特点。
113 8
|
3月前
|
存储 Serverless C语言
【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数
本文介绍了C语言中的`gets`和`puts`函数,`gets`用于从标准输入读取字符串直至换行符,并自动添加字符串结束标志`\0`。`puts`则用于向标准输出打印字符串并自动换行。此外,文章还详细讲解了`str`系列字符串操作函数,包括统计字符串长度的`strlen`、复制字符串的`strcpy`、比较字符串的`strcmp`以及拼接字符串的`strcat`。通过示例代码展示了这些函数的具体应用及注意事项。
235 7
|
2月前
|
C语言
C语言常见字符函数和字符串函数精讲
C语言常见字符函数和字符串函数精讲