正在分析字符串-无法确定如何分离连接的单词 我没有太多代码要显示,因为它不直接涉及代码问题,但是我在C++中解析文本有困难,我需要帮助。我在别处找不到解决办法

正在分析字符串-无法确定如何分离连接的单词 我没有太多代码要显示,因为它不直接涉及代码问题,但是我在C++中解析文本有困难,我需要帮助。我在别处找不到解决办法,c++,C++,我有一个KML文件 里面是由美国国家气象局生成的文本。正文如下: Shower activity associated with a tropical wave over the easternCaribbean Sea remains disorganized. This system is expected to movewest-northwestward with no significant development, producinglocally heavy rainfall o

我有一个KML文件

里面是由美国国家气象局生成的文本。正文如下:

Shower activity associated with a tropical wave over the easternCaribbean Sea remains disorganized.  This system is expected to movewest-northwestward with no significant development, producinglocally heavy rainfall over Puerto Rico, Hispaniola, and portions ofthe southeastern Bahamas during the next few days. Over the weekend,conditions could become marginally conducive for development whenthe disturbance moves near Florida and the central and northwesternBahamas.
我仍然是一个新手程序员,我在这篇文章中遇到了麻烦。请注意,像和Understorm这样的词是放在一起的。在我试图解析此文本并在单词之间放置空格时,我查找了可能导致此问题的转义序列,首先是“\n”。这不起作用

我找不到任何办法把这些词分开

我决定通过使用以下代码查找单词并返回除零以外的其他内容来查看单词是否实际放在一起:

int findWord = KML.find("andthunderstorms");
这会返回一个正值,所以这让我相信没有奇怪的格式导致这个。。。文本就是这样传递的。问题是,我不认为这是真的,一个大型组织发送格式不正确的天气数据是没有意义的。除此之外,我正在Mapbox中使用此文本执行一个项目,它根本不显示文本。这通常发生在它不喜欢转义序列的情况下——它不会加载任何内容。这就是为什么我认为它与文本本身有关


我怎样才能找出这是什么原因?我没有要求任何人为我编写代码,我只是需要一个开始的地方。

使用一些十六进制查看器,查看十六进制格式的文件。@David我使用了一个编辑器(记事本++),该编辑器可以显示文件中的所有字符,包括通常不可见的转义序列等。如果我不得不猜测的话,我会说原始文本在两个单词一起运行的点上包含换行符,并且在将文本放入KML文件之前,一些自动过程已经去除了换行符。由于这是NWS预测数据,因此使用的单词数量有限。您可以构建这些单词的查找表,以便识别它们何时组合在一起。例如
“北”、“南”、“东”、“西”、“北”、“南”、“东”、“西”。。。“阵雨”、“风暴”、“雷雨”等等。
当您遇到一个单词包含查找表中的任何子字符串时,您可以迭代以找到您已知单词在组合词中的起始位置,您可以基于此进行分离。@David And yes,if str.find()“你能找到一个词吗?”“这肯定意味着这个词和文本中的完全一样。@大卫,你在处理什么样的预测产品?”?预后,TAF,METAR?如果你能识别预测,你可能会得到一个词汇表文件(或者从几十个预测中提取一个词汇表文件。另外,你的数据来自哪里?看起来问题在于任何软件都在“加入”换行时,换行符不够智能,无法始终确保在最后一个/第一个单词之间留有空格。如果这是您正在做的事情,请使用更好的编辑器(如Vim、kate/kwrite、emacs等)。如果您正在使用的编辑器有问题,请至少尝试另一个编辑器。
:)