dSH Asked:2020-11-22 14:29:48 +0800 CST2020-11-22 14:29:48 +0800 CST 2020-11-22 14:29:48 +0800 CST 在 Oberon 中转义字符 772 Oberon-07 中的字符如何转义 - 特别是在为字符数组(ARRAY 100 OF CHAR)赋值时。 s := "x"; (* 如何用 x 代替例如引号" *) 还是我需要参考字符代码? oberon 2 个回答 Voted KEKC_leader 2020-12-02T10:05:10+08:002020-12-02T10:05:10+08:00 Oberon 上的字符串文字没有转义。要在s中添加双引号,您可以执行以下操作: s := 22X; (*работает не во всех Оберонах*) 或(与 Oberon-07 相关): s[0] := 22X; s[1] := 0X; (*сработает везде*) 或者: s := '"'; (*Компонентный Паскаль*) 或者: COPY('"', s); (*оригинальный Оберон(1990) и Оберон-2*) Ainar-G同志的回答可能有误。变量s应在BEGIN之后立即设置为零: s[0] := 0X; Best Answer Ainar-G 2020-11-22T17:02:38+08:002020-11-22T17:02:38+08:00 语言规范 说 : 字符串是用引号 (") 括起来的字符序列。字符串不能包含分隔引号。或者,可以通过十六进制表示法中字符的序号后跟“X”来指定单字符字符串。字符串中的字符数称为字符串的长度。 也就是说,字符串不能包含双引号,但您可以使用“ X -notation”来表达它们: MODULE Quote; IMPORT Out, Strings; CONST MaxStrLen = 64; VAR s: ARRAY MaxStrLen OF CHAR; BEGIN Strings.Append("I said ", s); Strings.Append(22X, s); Strings.Append("Hello!", s); Strings.Append(22X, s); Strings.Append(".", s); Out.String(s); Out.Ln; END Quote. 我打了个招呼!”。
Oberon 上的字符串文字没有转义。要在s中添加双引号,您可以执行以下操作:
或(与 Oberon-07 相关):
或者:
或者:
Ainar-G同志的回答可能有误。变量s应在BEGIN之后立即设置为零:
语言规范 说 :
也就是说,字符串不能包含双引号,但您可以使用“ X -notation”来表达它们: