转义
在手写字符串时,有些字符我们无法手写出来。比如回车,换行,分页,乃至引号本身。
此时我们可以使用转义来生成我们想要的字符。
转义符是反斜杠,在退格键附近的键。然后转义符后面跟随指定的格式。
在触发转义时,被转义的字符会被着色。
string s = "没被转义的字符";
string s2 = "\\";//因为反斜杠表示转义,所以想要表达反斜杠,自身也需要转义
string s3 = "\'";//表示一个单引号
string s4 = "\"";//表示一个双引号
string s5 = "\n";//表示一个换行
string s6 = "\r";//表示回到行首。一个回车同时包含换行和行首
string s7 = "\t";//表示一个水平制表符。在VS中,和按Tab生成的字符一样。
string s8 = "\u1234";//表示16进制为1234编号的Unicode字符
转义是考虑人在写代码时无法打出这个字符而设计的功能,只会在编译时生效一次。
在运行时做字符拼接得到\n,读取文件获取的\n,用户在账号密码输入框打出的\n,是不会被转义的。
原始字符串
考虑到有时我们会复制其他地方来的文本。如果黏贴上去的时候需要把所有不对的字符全部转义一次,那就太废手了。
此时可以使用原始字符串,来取消转义。
使用连续3个或更多的连续引号开头,并使用相同数量的引号结尾,可以生成原始字符串。
在原始字符串中如果有单个的引号,因为数量不够所以不会视为结尾。只会当作普通的引号。
如果你复制来的东西有连续的3个引号,那你可以在开头和结尾加更多的引号。
多行原始字符串
原始字符串可以跨行。并且换行使用的回车也会被记录下来。
但是如果使用多行原始字符串,则开头和结尾的引号必须放在单独的一行上。
自动裁剪
收尾使用的引号的位置是有讲究的。
他会自动截去每一行开头的空格,数量等同于他自己开头空格的数量。
如果内容行有谁的空格数量比他少,那么会报错。