回车和换行的区别

\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就是一个字节。

综上,一切还是要以实际为准。

posted @ 2020-09-15 15:44  cat_dog_pig  Views(247)  Comments(0Edit  收藏  举报