回车和换行的区别
\r(CR)表示回车,即将光标转换到当前行的行首,如果继续输入会覆盖后面的内容
\n(LF)表示换行,将光标换到下一行的相应位置,但不是行首。
在UNIX下,每行结尾只有\n(换行)
在Windows下,每行结尾有\r\n(回车换行)
在Mac下,每行结尾只有\r(回车)
这在统计字符串长度的时候作用尤为明显,例如
13 14 15 16
上面这一个字符串在windows下strlen为13,正是后面有了/r/n算两个字符
另外,想起c语言中也有strlen函数,在C语言中字符串是以'\0'结尾的,也就是0x00,在进行strlen求解长度的
时候不会考虑\0,例如上面的例子,结果仍旧为13。
疑惑:有些转义字符使用字母表示和直接打出,所占据的字符长度还是有区别的,发现以下问题:
(1)定义字符串$str="12 13 14"; //这时候打出制表符\t占据4个字节,有时候编译器不同,可能就是两个字节
(2)针对(1)中的制表符如果我$str="12\t13\t14"; //这个时候就是\t就是一个字节。
综上,一切还是要以实际为准。