A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C语言中,字符串“abc\0xyz”输出结果是abc, 其中有一个转义字符'\0',它是字符串结束符,所以,当用函数strlen来测试该字符串的长度时,结果应该为4(而不是8)。
Java语言中,“abc\0xyz”输出结果是abc xyz, 遇到终止符’\0’并不会终止, 而是输出一个空格.

1 个回复

倒序浏览

原理:         \0 是一个8进制数, 实际上代表0000 0000 ,即ASCII表中的 空格;
\0 在c中代表字符串结束符(编译器遇到就不会输出后面的字符串).  
同样的,字符串“abc\\\061xy”, 输出结果是abc\1xy (061是个8进制数 061=49 ,对应ASCII表为1).
当遇到转义字符'\0'时,还要看其后面是否还有数字,若有,则应将后面的数字(一至二位)与前面的'\0'相结合作为一个字符计入整个字符串的长度。
另外, c语言中,  使用strlen求字符串长度是是不计算末尾的终止符的,但是字符串所占的字节数是包括终止符(例如:字符串“abc\\\061xy”的长度为7,占8个字节).
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马