#3、字符串&转义字符


文章目录


字符串

"Nagato Yuki.\n"


概念:这种由双引号(Double Quote)引起来的一串字符成为字符串字面值(String Literal),简称为字符串。
注意:字符串的结束标志是一个'\0'的转义字符。(在计算字符串长度时'\0'是结束标志,不算做字符串内容。)

#include <stdio.h>

int main()
{
	char arr1[] = "Yuki";
	char arr2[] = { 'Y', 'u', 'k', 'i', '\0' }; //字符串数组中的字符'\0'很重要
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	return 0;
}


若不考虑字符'\0'的输出后果

#include <stdio.h>

int main()
{
	//输出字符串不考虑字符 '\0'
	char arr[] = { 'Y', 'u', 'k', 'i' };
	printf("%s\n", arr);
	return 0;
}


输出结果:

在这里插入图片描述

分析:之所以会出现乱码,是因为输出字符串时输出完字符串“Yuki”时没有检测到结束字符'\0',因此输出不会停止,直到在缓存中找到字符'\0'时停止,在此期间缓存中的一些乱码字符也会输出。因此涉及字符串的问题时一定要注意结束字符'\0'

转义字符

'\n', '\t', '\\'.


概念:所有的ASCII码都可以用'\ddd''\xhh'(其中ddd是1 ~ 3位的8进制数, hh是1 ~ 2位的16进制数)来表示,但是C语言规定了语法'\特定字母'来表示一些常见的不能显现的字符(如:换行键Enter、制表键Tab 等字符)

在这里插入图片描述

应用:

#include <stdio.h>

int main()
{
	//打印一个单引号'
	printf("%c\n", '\'');

	//打印一个双引号"
	printf("%c\n", '\"');
	printf("%s\n", "\"");

	//打印目录"c:\code\test.c"
	printf("c:\\code\\test.c\n");

	//打印目录"c:\test\628\test.c"
	printf("c:\\test\\628\\test.c\n");
	return 0;
}


注意:大部分转义字符是只算一个字符长度的(字符串结束标志转义字符'\0'是不算入字符串长度的)。
e.g:计算字符串"c:\test\628\test.c"的长度

#include <stdio.h>
#include <string.h>

int main()
{
	int lenth;
	lenth = strlen("c:\test\628\test.c");
	printf("%d\n", lenth);
	return 0;
}


结果:"c:\test\628\test.c"长度位14位,因为转义字符\t和转义字符\62是只算入一个字符长度的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值