现在的位置: 首页 > 综合 > 正文

C/C++语言中的反斜杠!!!

2017年12月20日 ⁄ 综合 ⁄ 共 356字 ⁄ 字号 评论关闭

今天碰到一个某公司的笔试题(被鄙视了): 

	char s[] = "\\141\141abc\t";
	cout << s << endl;
	cout << strlen(s) << endl;//请问输出结果?

答案:

\141aabc

9

(如果你是大牛 一看就知道答案 下面的东西就别看了 , 就放小弟一马,别鄙视我了)

前两个 字符大家比较熟悉,肯定是一个 \ ,后面的141 是三个字符 , 但是到了 \141 我就烦糊涂了, 到底是几个字符?其实

\141 是一个字符 a ,为什么呢?因为 \141 是一种用八进制数字表示字符的形式,\o \oo \ooo 这三种形式,当然 o 必须是正确的八进制数(0~7)。

所以我们如果这样改一下 s :

s[] = "\\141\411abc\t";

那么结果是 \141!1abc , 因为 \41 是 ! 字符  

还有一个问题,strlen() 函数是不计入 \0 的。。  

 

抱歉!评论已关闭.