关于C语言的学习笔记#3

字符串

字符串是由多个字符组成的值。
在C语言中,字符串与单个字符是有严格区分的,单个字符用单引号括起来,字符串则用双引号,单个字符的占位符为%c,字符串的占位符为%s。比如:

'a'
"abc"

注:%s也可以用来表示单个字符。
创建一个字符串变量和创建其它变量的方式有所不同,在C语言中要用到字符数组。
数组:由一组相同类型的元素组成的集合叫做数组

char ass[] = "abc"; //创建一个abc的字符串

char是字符型变量的创建函数,ass为字符数组名,[]表示长度。[]里的数字表示该数组由多少个元素组成,当[]内不填入任何数字时,系统会自动根据后面给出的元素数量来计算数组的长度。
在字符串中,表示字符串终止的转义字符为“\0”。创建完一个字符串后,系统一般会自动在末尾添加"\0","\0"是隐藏的。

char ass[] = "abc\0"; //与上面的代码是等价的。

创建字符串还可用下面的方式:

char ass[] = {'a','b','c','\0'};

结果与上述代码相同。该定义方式是将ass数组中的元素逐个给出。当采取这样的定义方式时,末尾必须加入’\0’。
当没有加入’\0’时,假设使用printf打印ass,会发现系统打印abc后出现了一堆看不懂的乱码。实际上是系统由于没有‘\0’的终止而在打印abc后在内存中继续打印,直到遇到内存数据中的另一个’\0’的结果。
在C语言中,计算字符数组长度的函数为"strlen",它是string(字符串)和length(长度)两个单词缩写的结合。使用它可以获取数组含有的元素的数量。
注意:在使用strlen函数之前,必须先声明引用头文件string.h,即在文件开头写入:

#include <string.h>

同时,“\0”是隐藏的,计算字符串长度时不会算入它。
使用strlen时,需要用到()。

strlen(ass); //计算数组ass的长度

一般有两种用法

int main()
{
	char ass[] = "abc";
	int L = strlen(ass); //将ass数组的长度赋予变量L
	printf("%d",L); //输出3
	int C = strlen("abcdefg"); //计算abcdefg字符串长度并存储
	printf("%d",C); //输出7
	return 0;
}

转义字符

在C语言中,有一些字符串的含义与它原本的意思不一样,这些字符串叫做转义字符。

int main()
{
	printf("\n"); //不会打印\n,而是直接空格。
	return 0;
}

常见的转义字符有:

\n //换行
\' //表示字符'
\" //表示字符"
\\ //表示字符'\'
\a //警告字符,会产生蜂鸣
\ddd //计算一个三位的八进制数字,并转为十进制
\xdd //计算一个两位的十六进制数字,并转为十进制

其中,\ddd的d表示八进制数字。如\123。
\xdd中的d表示十六进制数字,如\x15。
计算:

int main()
{
	printf("%d\n","\123"); //\n防止两个数字混在一起
	printf("%d","\x15");
	return 0;
}

扩展:printf函数实际上还具有强制转换数据类型的功能。
将上面代码中的%d整型占位符换为%c字符占位符或%s字符串占位符:

int main()
{
	printf("%s\n","\130"); 
	printf("%s","\x10");
	return 0;
}

那么输出的将会是计算出的数字所对应的ASCII码表字符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值