C语言学习笔记

C语言初学者三


一、字符串

一.字符串的定义

字符串是由双引号引起来的一串字符称为字符串字面值,或简称字符串。
字符串的结束标志是一个“\0”的转义字符,在计算字符串的长度的时候“\0”是结束标志,不算作字符串内容。

int mian()
{
	//这就是字符串
	"hello";
	return 0;
}

1.字符串中的“\0”

int main()
{
	//创建一个char类型数组来存储hello
	char arr[] = "hello";
	return 0;
}

//使用调试器去查看arr 变量中存储hello的方式,可以看到字符串末尾一个存储单元内存了一个“\0”。
在这里插入图片描述

2.有无"\0"的区别

int main()
{
	char arr1[] = "abc";
	char arr2[] = {'a','b','c'};
	printf("%s\n",arr1);
	printf("%s\n",arr2);
	return 0;
}

打印完后可以看出arr1和arr2存储的字符方式不同arr1最后还存储了一个“\0”,然后打印结果就打不相同了。
在这里插入图片描述
在arr2中加入"\0"后的打印结果:
在这里插入图片描述

int main()
{
	char arr1[] = "abc";
	char arr2[] = {'a','b','c'};
	//计算字符串长度函数strlen,使用这个函数需要应用新的头文件#include<string.h>
	printf("%s\n",strlen(arr1));
	printf("%s\n",strlen(arr2));
	return 0;
}

这里可以看出arr1的长度是正常的arr2错误它给出的是一个随机的值,因为arr2中c后面是什么不知道不确定是不是\0所有电脑就给出了一个随机的值。
在这里插入图片描述

2.转义字符

1.转义序列

转义序列含义
\a报警
\b退格
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符
\\反斜杠()
\’单引号
\"双引号
\?问号
\0oo八进制值(oo必须是有效的八进制数,即每个o可表示0~7中的一个数)
\xhh十六进制值(hh必须是有效的十六进制数,即h每个可表示0~f中的一个数)

转义字符:将反斜杠‘’后面的字符转变成为另外的意义!

int main()
{
	printf("sdf\tsfdf\tsdf");
	printf("ads\nsdf");
	return 0;
}

printf与原本要打印的不服,打印成另一种意思,这就是转义字符的意义。
在这里插入图片描述

2. 转义字符的使用

int main()
{
	printf("\a");//电脑会有一声报警音。
	printf("%s\n","as")
	printf("%s\n","\"")//打印"号
	//特殊转义字符
	printf("%c\n",'\130');//会把字符类型130从八进制转换成十进制成88在打印成88对应的ASCII吗值X
	
	//\x表示16进制。
	printf("%c\n",'\x30');//会把字符类型30从十六进制转换成十进制成48在打印成88对应的ASCII吗值0
	printf("%d\n",strlen("c:\tdgs\328\t235.c"));//‘\t’占一个字符。\328中8另算一个字符,因为八进制中不能有8.
	return 0;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值