C++的字符数组问题
charsp[]="\x69\082\n";cout<<strlen(sp);输出的结果是1,但为什么?字符数组只占一个字节吗?...
char sp[]="\x69\082\n";
cout<<strlen(sp);
输出的结果是1,但为什么?字符数组只占一个字节吗? 展开
cout<<strlen(sp);
输出的结果是1,但为什么?字符数组只占一个字节吗? 展开
4个回答
展开全部
你哪字符串里有个\0,你注意到没,是个结束标志,也就是说你实际在数组里只存了一个字符 ,还有strlen这个函数是计算数组元素个数的和占字节数没关系,要算字节数要用sizeof()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,strlen()的判断是读取一输入流,判断当前字符是否与结束标志“\0”相等,\x69表示转义字符,68所对应的ascii码,到\0就不读了,所以为1
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如dingtang2008讲的那样
\082很有迷惑性,如果8换成0-7中间一个数字的话,譬如\072,那就是表示一个8进制数了
\082很有迷惑性,如果8换成0-7中间一个数字的话,譬如\072,那就是表示一个8进制数了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\082 这是什么意思?
字符串里的转义接数字只有两种形式,要么 \x接16进制的两个字,要么\接8进制的3个字
字符串里的转义接数字只有两种形式,要么 \x接16进制的两个字,要么\接8进制的3个字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询