黑马程序员技术交流社区
标题:
ava语言与C语言中字符串的输出是有区别的
[打印本页]
作者:
rabird
时间:
2016-6-30 23:22
标题:
ava语言与C语言中字符串的输出是有区别的
C语言中,字符串“abc\0xyz”输出结果是abc, 其中有一个转义字符'\0',它是字符串结束符,所以,当用函数strlen来测试该字符串的长度时,结果应该为4(而不是8)。
Java语言中,“abc\0xyz”输出结果是abc xyz, 遇到终止符’\0’并不会终止, 而是输出一个空格.
作者:
rabird
时间:
2016-6-30 23:23
原理: \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个字节).
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2