将字符串“\ u0026”转换为“&”在C ++中

时间:2017-08-31 16:37:46

标签: c++ string replace

我从Post获得一个字符串,但字符串是这样的:

?重新= 784D30879 \ u0026rr = POH0525 \ u0026tt = 525.100000 \ u0026id = 0958567C-20DC-44B4-9FD0-1AD13453DEBF4

我想要:

RE = 784D30879&安培; RR = POH0525&安培; TT = 525.100000和ID = 0958567C-20DC-44B4-9FD0-1AD13453DEBF4

我正在使用一个函数来替换字符串中的字符,但它向我发送了以下错误:a universal character name cannot designate a character in the basic character set

所以我正在调用函数:

message = replaceChars(message, string("\u0026"), string("&"));

这就是功能:

string replaceChars(string stringToChange, const string& charToChange, const string& newChar) 
{
    size_t initialPosition = 0;

    while((initialPosition= stringToChange.find(charToChange, initialPosition)) != string::npos) 
    {
        stringToChange.replace(initialPosition, charToChange.length(), newChar);
        initialPosition += newChar.length();
    }

    return stringToChange;
}

我无法理解错误。

1 个答案:

答案 0 :(得分:3)

您应该使用"\\u0026"代替"\u0026"