前排提醒,这不算是转义字符的教学 算是个我个人学习的记录 我们先来看下面这个代码
#include <stdio.h>
int main()
{
printf("c:\test\32\test.m");
return 0;
}
问:printf中的c:\test\32\test.m包含几个字符?
大家可以先思考一下这个问题 我们直接数的话,会得出这里面包括了17个字符 如果真的有那么简单也不需要这篇博客了对吧
这里就要引入转义字符的概念了
常用的转义字符有以下几个 比较常规的我们可以看表格中的定义
需要注意的是"\?"这个是用于连续问号的情况 ??+(某个符号) 称为三字母词 如:??) 显示出来是 ] \?就让?不被识别为三字母词,而显示问号这个字符 同时\\也是让“\”这个字符能以本身形式出现而不是被识别成转义字符 同时我们要知道的是
“\0”这个转义字符是字符串的结束,在我们输入字符串的时候后面会默认跟着一个隐藏的“\0” (如图)
我们使用strlen计算字符串abc的长度的时候需要在后面-1 同时“\0”也会有自己对应的下标3
说会我们的c:\test\32\test.m 通过查表,我们能轻易地发现这里面出现了两个"\t"转义字符 每个转义字符在数字符长度的时候是记作一个的 除了这两个“\t”,这里还藏有另外一个转义字符“\32” “\32"这个转义字符正是图表中的”\ddd"格式的转义字符 代表32是一个八进制数字
而\32在正常代码中 是指
32作为八进制数字对应的十进制数字,在ASCII表上对应的字符 如:八进制32是十进制的26 那么\32就代表十进制数26在ASCII码表上对应的符号 查表可知26是替代符号
当然,在这里我们的\32只是一个我们想要打印出来的字符,并没有实际作用
所以答案就很明朗了。
int main()
{
printf("c:\test\32\test.m");
return 0;
}
在这个代码中,(“c:\test\32\test.m”)一共包含的字符数量是13
本篇不走心博客到这里也结束了
- 介绍了部分转义字符的作用
- 明确在计算字符数量的时候转义字符应视为同一个字符计数
感谢你看到最后 还是求dalao无情指正啊!
|