Forth语言中如何打印包含双引号的字符串
实现方案
核心问题说明
Forth的."词会以遇到的第一个"作为字符串结束标记,所以你要输出的内容里包含的双引号不能直接写在."包裹的字符串内部,会提前终止字符串识别,导致后续内容被误识别为Forth指令执行报错。
通用兼容写法(所有标准Forth环境均可用)
双引号的ASCII码为34,可以用EMIT指令单独输出双引号,拆分字符串拼接即可:
." That's the " 34 EMIT ." question" 34 EMIT ." ." CR
执行后就会输出你需要的内容:
That's the "question".
部分Forth实现支持的简化写法
部分Forth环境支持用连续两个双引号代表需要输出的单个双引号(作为转义规则),这种情况下可以直接写:
." That's the ""question""." CR
注意这种写法不具备全环境兼容性,优先用第一种通用写法即可。
内容的提问来源于stack exchange,提问作者harper
相关产品推荐
相关产品推荐

