字符串部分语法内容
一.字符与ASCII码
1.字符
Q:字符串的作用
A:在日常使用中,我们需要计算机帮我们处理各种各样的文字,比如写文档,写代码,各种文字记录在计算机中,就需要用到字符串或者字符数组将文字内容存储在计算机中。
字符串由字符组成,字符是单引号包含的一个字形单位,例如'a','5','#','\n'。
单个字符的格式化说明符为%c,因此要输出一个字符,有以下代码:
printf("%c",'a');//输出字符a
如果你不小心将%c
写为了%d
,那么此时你的程序仍然可以运行而并不会报错,但此时输出的结果不再是a
,而是97
,这个不小心输出的97
就是字符a的ASCII码值。
2.ASCII码
字符在计算机内通过存储其对应的ASCII码值来存储其内容。
以下是常见的ASCII码值:
可以尝试手敲以下代码,便可轻松理解ASCII码和字符的概念。
printf("%d\n", 'a');//输出字符a的ASCII码值printf("%c\n", 'a');//直接输出字符aprintf("%d\n", 63);//直接输出值63printf("%c\n", 63);//通过ASCII码63输出对应的值,应为‘?’
除了以上可显示出来的字符外,还有一些可以起到控制或者其他功能的字符叫做转义字符,比如常见的\n
就是一个转义字符,表示为换行操作,下表为常见的转义字符。
二.字符串的存储与初始化
1.字符串的组成与存储形式
字符串是由双引号包含的若干个字符组成,如"a123","hello world","*",""等。
字符串在存储时会在末尾自动添加'\0'作为结束标志,以下为"hello world"和空串的存储示例:
字符常量与字符串常量不同,如字符'a'在计算机存储的只有a的ASCII码一个数据,而字符串"a"存储的为两个数据,分别是a的ASCII码和结束符"\0"两个数据。
Q:C语言中字符串是如何存储的?
A:第一种方式为字符数组,第二种方式为字符指针
(1)字符数组
字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。(即用字符数组来存放字符串)。
char str[20];
!!!请注意,如果一个字符数组结尾没有存储"\0",那么这个字符数组只能是字符数组而不能表示为字符串。字符串的结尾一定要加上结束符!
Q:如何对字符数组进行初始化。
A:同样也有两种方式。第一种为逐个元素进行初始化,第二种为利用字符串常量直接初始化。
(a)逐个元素初始化(类似于数组元素逐个初始化)
char str[6]={'c','h','i','n','a','\0'};//千万不要忘记末尾要存储结束符
(b)用字符串常量直接对数组初始化
char str[11] = {"china"};char str[11] = "China";
如果创建的字符数组长度大于存储的字符数,那么系统会在空元素处自动补上结束符。
将以上代码敲进编译器中,并在监视器中显示,可以看到如图显示的各个元素的值。