So entfernen Sie Akzente und tilde in C++ std::string

Ich habe ein problem mit einem string in C++, das hat mehrere Wörter in Spanisch. Dies bedeutet, dass ich eine Menge von Wörtern mit Akzenten und Tilden. Ich möchte Sie ersetzen, die für Ihre nicht akzentuierten Entsprechungen. Beispiel: ich will ersetzen Sie das Wort: "había" für habia. Ich habe versucht, ersetzen Sie es direkt, aber mit replace-Methode der string-Klasse, aber ich konnte nicht bekommen, um zu arbeiten.

Ich bin mit diesem code:

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);
    }
}

Wo dictionary ist eine Karte wie diese (mehr Einträge):

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") );

sowie toReplace Saiten:

std::string toReplace="á-é-í-ó-ú-ñ-á-é-í-ó-ú-ñ";

Muss ich offensichtlich etwas fehlen. Ich kann ' T es herausfinden.
Gibt es eine Bibliothek, die ich verwenden kann?.

Dank,

Sollten Sie die Plattform, die Sie sind targeting (Windows, Linux, usw.), und die Codierung, die Sie sind targeting (UTF-8, UTF-16, was auch immer). Zum Beispiel, Ihre "á" ist Glyphe ' E1, was übersetzt 'á' auf USO-8859-1 char L'á' auf UTF-16 wchar_t, aber "á" (ja, die beiden chars) auf UTF-8
Sorry... Von der Zeit bekam ich zurück, um Ihre post (von der Suche auf Unicode.org) und validiert den Kommentar, du hast Antwort...
Dies ist ein Duplikat von <a href="stackoverflow.com/questions/140422/..."> Wie übersetze ich " 8bit-Zeichen in 7-bit-Zeichen? (also Ü zu U) </a>.

InformationsquelleAutor Alejo | 2008-09-27

Schreibe einen Kommentar