初识C语言(第二课时)

一、字符串

这里涉及到的格式字符和转义字符(在本章后面提到,当前只需要理解字符串即可)

1.%c    2.%s    3.\0    4.\n

1.字符串的定义:由双引号("")括起来的一串字符字符串字面值,简称字符串(也可以由多个单字符组成)。注意:字符串的结束标志是一个"\0",即遇到\0就结束当前程序

2.怎么用字符串:

存储或者打印字符串一般是用数组(后续会提到)来实现,printf是打印函数,用来打印数据

(1)表示单个字符:用单引号('')直接定义即可。如:char a='x';    定义了一个字符变量a,对其赋值为X

char a = 'X';
printf("%c\n",a);//注意格式

(2)定义一维数组字符串: 

第一种:用双引号引起的

char arr1[]="abcd";
printf("%s\n", arr1);

打印结果:

1)定义了一个字符(char)一维数组(arr1),该数组里面存放的数据为:abcd;

2)打印操作:由于该字符串是用双引号表示,所以在该字符串末端隐藏了\0;在进行打印字符串操作时,\0不会被打印出来,也就是说,只会打印\0前面的字符

3)计算字符串长度操作:在进行计算字符串的长度操作时,\0不会计入长度,他只作为结束标志。就是说,当计算到\0时,该计算便停止,长度即为\0前面的长度

第二种:由多个单字符组成

1)错误写法:

char arr2[] = {'a','b','c','d'};
printf("%s\n", arr2);

打印结果:

打印操作:为什么除了打印abcd外还会打印这么多文字呢?原因是:这种表示由单引号表示字符串的方式,结尾没有自带\0,意味着找不到结束的信号,导致程序不能按照预期的结果实现

计算字符串长度操作:因为没有\0,所以计算长度得出来的结果为随机值

2)正确写法:

char arr3[] = { 'a','b','c','d','\0'};
printf("%s\n",arr3);

打印结果:

 

 打印操作:这里打印出来的结果只有abcd,因为我们主动加了\0;所以打印到\0时便结束了该程序

 计算字符串长度操作:遇到\0结束计算,\0不会计入长度

3.需要避免的问题:

1)定义时注意为字符类型(char)

2)注意单引号和双引号的使用格式

3)注意单个字符和字符串的打印格式

完整代码:

#include<stdio.h>
int main()
{
	char a = 'X';//单个字符的打印
	char arr1[] = "abcd";//第一种存储字符串的方式
	char arr2[] = {'a','b','c','d'};//第二种
	char arr3[] = { 'a','b','c','d','\0'};//第二种(注意与arr2的区别)
	printf("%c\n",a);//注意格式
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	printf("%s\n",arr3);
	return 0;
}

二、转义字符

1.转义字符的定义:一种特殊形式的字符常量;说坤语就是:转变原来的意思。表示形式为:以斜杠(\)开头

注意是\,形状可以记成左上右下,要与/(除号)区别开来

下面是一些转义字符及其大致含义,我们下面将逐一介绍(有些不常用甚至不考我们不做解释,加*为比较常见)

2.格式字符

定义:在printf函数中输出的形式。

(1)%d:以十进制的形式打印整形。例:假如变量a的值为250,则输出的结果为250

一般表示形式:printf("%d",a);           在这里%d表示输出的格式,a表示输出的数

(2)%s:打印字符串

(3)%c:打印单个字符

3.转义字符

 *(1)\n   换行符

作用:将当前光标位置移到下一行开头(不好文字描述,直接上图)

不加\n:

 加了\n:

 

不加\n:

加了\n:

总结:如果不加\n,打印的数据就会全部在一行上面。\n可以将它后面的内容换到下一行。

 *(2)\0   结束标志

在双引号下的字符串末尾自带\0,也可以自己随意任意位置添加。单引号下需要自己加上。

作用:由上可知,该转义字符出现在字符串后面,作为结束标识。当计算或打印该字符串时,以遇到\0为结束标志,不再计算和打印\0后面的内容。

在字符串上面以详细提及,这里不做过多解释。

 (3)\\    一个反斜线

输出结果:\

目的:防止想要打印出来的\与其他符号组成转义字符而转变成其他意思。

 (4)\?\?)   三字母词

作用:放在??)被转义为]

老版本编译器存在

 (5)\,    一个逗号

输出结果:,

 (6)\"    一个分号

输出结果:"

 (7)\a    警告

作用:在程序运行的时候电脑会鸣笛一声。

 (8)\b   退格符

作用:打印结果时,覆盖掉\b前面的字符

正常输出:

 不正常输出:

 总结:在输出字符的时候,会直接覆盖\b前面的字符,而输出文字则是直接省略,中间有一小段空格。

 (9)\t    水平制表符

作用:与四个空格的结果相同(与见键盘上的Tab键作用相同,跳四格)。

*(10)\ddd    与该八进制码对应的ASCII字符

输出结果:字符

ddd表示三个八进制数字

如;\130       八进制的130转化为十进制的88    再通过ASCII字符表找到对应的字符并输出,88对应的字符为X,所以\130会输出X.

#include<stdio.h>
int main()
{
	printf("%c",'\130');
	return 0;
}

注意:ddd只能由0-7的数字组成;如果转化成的十进制数字不在ASLII字符表范围内,则无效

 (11)\xdd     与该十六进制码对应的ASLII字符

输出结果:字符

x表示十六进制的意思,dd表示两个十六进制数字

如:\x30    30为十六进制的表现形式,转化为十进制数为48,在ASLII字符表中对应的字符为0;

所以输出结果为0.


#include<stdio.h>
int main()
{
	printf("%c",'\x30');
	return 0;
}

注意:dd只能为0-15的数字,转化成十进制的数字不在ASLII字符范围同样无效

三.注释

作用:用于解释代码或防止解释的东西导致程序运行错误

两种注释方法

1.c语言风格:/*xxxxxx*/,xxxxxx为被注释掉的内容

2.c++风格://xxxxxxxx,xxxxxxxx为被注释掉的内容

图中黑色框框内即为被注释掉的内容,不再参与代码运行

猜你喜欢

转载自blog.csdn.net/2301_77053417/article/details/131633091