首页 > 解决方案 > LC-3 分析给定的一段文本

问题描述

如何将给定的一段文本存储在内存中?例如:

“昨晚我做了一个梦,梦见一个男人请我过来吃饭。我说我不喜欢我们拥有的东西,但他并不介意。”</p>

我想将每个单词存储在一个单独的内存位置。

最终我想输出每个单词中的字符数。

标签: lc3

解决方案


在 LC3(和一般情况下)中,您将希望将每个字母存储在单独的内存位置。

您的 LC3 程序需要在内存中的某个位置创建一个标签,该位置有足够的空间来存储所有这些字符。将此称为您的 FIRST_CHARACTER 标签。

如果您需要在阅读任意句子后单独查找每个“单词”,您可能还需要在字符中存储从 FIRST_CHARACTER 开头的偏移量“距离”。对于您阅读的每个单词,您都会在内存中存储一​​个偏移值。您可以从内存中称为 OFFSET_COUNTS 的其他标记开始存储这些值。所以第一个单词总是从位置 FIRST_CHARACTER 开始。第二个单词将从位置 FIRST_CHARACTER +(在 OFFSET_COUNTS+1 处找到的值)开始,等等。

还有其他方法,但如果这是您需要做的,您将需要有某种方法在事后找到记忆中的每个单词。

另一种方法可能是只搜索存储在 FIRST_CHARACTER 中的整个字符串并计算原始字符串中的空格,直到找到您要查找的第一个单词的开头。

查看 lc3tutor.org “get a line” 代码示例,了解如何在需要时将字符串存储在内存中的更简洁示例。

祝你好运!

杰夫


推荐阅读