字符串"\x54BNHGb13,2m"的长度为_______。
展开全部
按照书本知识,应该选A。
但是实际写代码的时候可能有点问题:
-------------------------
\x54B
无法转换成字符,此题出的有问题,无解,或者是C++字符函数有bug。
16进制的54B转换成10进制数是1355,而可打印字符只有不到128个(扩展ASCII不计在内),所以出错。
很多书上写\x后面接2位16进制数字表示一个字符,实际上C++字符库函数貌似是“智能”识别后面是几位16进制数的……
这里我们做个实验,把B换成Z,结果strlen返回11,与预期值相等。
-------------------------------
出现错误的代码:
strlen("\x54BNHGb13,2m");
//
将导致C2022错误:
'1355'
:
too
big
for
character
strlen("\x54B");
//
也一样出错
但是实际写代码的时候可能有点问题:
-------------------------
\x54B
无法转换成字符,此题出的有问题,无解,或者是C++字符函数有bug。
16进制的54B转换成10进制数是1355,而可打印字符只有不到128个(扩展ASCII不计在内),所以出错。
很多书上写\x后面接2位16进制数字表示一个字符,实际上C++字符库函数貌似是“智能”识别后面是几位16进制数的……
这里我们做个实验,把B换成Z,结果strlen返回11,与预期值相等。
-------------------------------
出现错误的代码:
strlen("\x54BNHGb13,2m");
//
将导致C2022错误:
'1355'
:
too
big
for
character
strlen("\x54B");
//
也一样出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询