我正在寻找一种简单的方法来检查某个字符串是否是正确拼写的英语单词。例如,“looked”将返回True,而“hurrr”将返回False。我不需要拼写建议或任何拼写纠正功能。只是一个简单的函数,它需要一个字符串并返回一个 bool(boolean) 值。

我可以使用PyEnchant使用Python轻松地做到这一点,但是,如果要与MS Visual C++一起使用,似乎必须自己编译该库。

最佳答案

PyEnchant基于Enchant,这是一个提供C和C++接口(interface)的C库。因此,您可以将其用于C++。最小的示例将是这样的:

#include <memory>
#include <cstdio>

#include "enchant.h"
#include "enchant++.h"

int main ()
{
    try
        {
            enchant::Broker *broker = enchant::Broker::instance ();
        std::auto_ptr<enchant::Dict> dict (broker->request_dict ("en_US"));

            const char *check_checks[] = { "hello", "helllo" };
            for (int i = 0; i < (sizeof (check_checks) / sizeof (check_checks[0])); ++i)
        {
            printf ("enchant_dict_check (%s): %d\n", check_checks[i],
                dict->check (check_checks[i]) == false);
        }

    } catch (const enchant::Exception &) {
        return 1;
    }
}

有关更多示例/测试,请参见其SVN repository

09-26 08:36