我开始写一个翻译程序,它将使用并行数组翻译一个文件中的一串文本。要翻译的语言是Pig拉丁语。我创建了一个文本文件,用作Pig拉丁语到英语的字典。我不想使用任何二维数组;我想保持一维数组,基本上我想读一个用PigLatin写的文本文件,用我创建的字典,我想在命令行上输出翻译成英语。
我的伪代码想法是:
- 打开词典文本文件。
- 询问用户要翻译成英语的PigLatin文本文件的名称
- 在用户的文本文件中搜索每个单词,并与词典进行比较,然后相应地翻译该单词。继续搜索,直到没有更多的单词需要翻译。
- 在命令行屏幕上显示翻译的单词。
我在考虑使用一个并行数组,一个包含英语翻译的单词,另一个包含Pig拉丁语单词。
我想知道如何在C++中使用数组来操作字符串?
- 谢谢-谢谢
3条答案
按热度按时间brccelvz1#
如果文件总是在一个方向上翻译(例如PigLatin -〉英语),那么使用
std::map
将一个字符串Map到另一个字符串会更容易、更有效:并获得翻译的单词,只需使用
dictionary[]
进行查找(例如std::cout << dictionary["upidstay"] << std::endl;
)lsmd5eda2#
Pig拉丁语可以在飞行中翻译。
只需将每个单词的第一个元音之前的单词分开,你就不需要词典文件了。然后将第二部分与第一部分连接起来,用"-“分隔,并在最后加上“ay”。
除非您 * 想要 * 使用字典文件?
nnt7mjpx3#
声明字符串数组很容易,就像声明其他任何数组一样。
这是一个由100个字符串对象组成的数组,数组名为
piglatin
。字符串开始时为空。可以像这样填充数组:我强烈建议你 * 不要 * 使用数组。使用一个容器对象,比如
std::vector
或std::deque
。这样,你就可以在不知道文件大小的情况下加载文件的内容。使用上面的示例声明,你需要确保你的文件中没有超过100个条目,如果少于100个,那么您需要跟踪数组中有多少项是有效的。