我对 C++ 中的一个字符串有疑问,该字符串在西班牙语中有几个单词。这意味着我有很多带有重音符号和波浪线的单词。我想将它们替换为没有重音的对应物。示例:我想替换这个词:“había”代表 habia。我尝试直接替换它,但使用字符串类的替换方法,但我无法让它工作。
我正在使用这段代码:
for (it= dictionary.begin(); it != dictionary.end(); it++)
{
strMine=(it->first);
found=toReplace.find_first_of(strMine);
while (found!=std::string::npos)
{
strAux=(it->second);
toReplace.erase(found,strMine.length());
toReplace.insert(found,strAux);
found=toReplace.find_first_of(strMine,found+1);
}
}
像这样的地图在哪里dictionary
(有更多条目):
dictionary.insert ( std::pair<std::string,std::string>("á","a") );
dictionary.insert ( std::pair<std::string,std::string>("é","e") );
dictionary.insert ( std::pair<std::string,std::string>("í","i") );
dictionary.insert ( std::pair<std::string,std::string>("ó","o") );
dictionary.insert ( std::pair<std::string,std::string>("ú","u") );
dictionary.insert ( std::pair<std::string,std::string>("ñ","n") );
和toReplace
字符串是:
std::string toReplace="á-é-í-ó-ú-ñ-á-é-í-ó-ú-ñ";
我显然必须遗漏一些东西。我想不通。有没有我可以使用的图书馆?
谢谢,