C ++如何替换字母数字

时间:2015-12-11 03:40:01

标签: c++ string replace letters-and-numbers

我想知道如何逐个更改,我想将1替换为:x: 这是我的代码:

string stng;

printf("Enter with number:");
cin >> stng;

replace(stng.begin(), stng.end(), '1', 'x');

cout << stng << endl;

正如您所看到的,我正在使用此代替:replace(stng.begin(), stng.end(), '1', 'x'); 但是只要我1只能更改x,我就想替换为:x:

4 个答案:

答案 0 :(得分:0)

也许你可以试试这样的事情

string stng;

printf("Enter with number:");
cin >> stng;

replace(stng.begin(), stng.end(), '1', ":x:");

cout << stng << endl;

答案 1 :(得分:0)

这是我使用的。它将需要std::string并将from输入字符串的所有匹配项替换为to输入字符串。

std::string replaceAll(const std::string & s, const std::string & from, const std::string & to)
{
    string res(s);
    string::size_type n1 = from.size();
    string::size_type n2 = to.size();
    string::size_type i = 0;
    string::size_type j = 0;
    while ((i = res.find(from, j)) != string::npos)
    {
        res.replace(i, n1, to);
        j = i + n2;
    }
    return res;
}

答案 2 :(得分:0)

使用replace的{​​{1}}成员函数,您可以做得更好。

std::string

你的工作已经完成!!!

答案 3 :(得分:0)

您可以使用此split函数将'1'分隔为标记来拆分字符串。

然后使用以下函数将":x:"合并为字符串

std::string merge(const std::vector<std::string>& v, const std::string& glue)
{    
    std::string result;
    if(v.empty()) { return result; }
    result += v[0];
    for(size_t i = 1; i != v.size() ; i++)
    {
        result += glue;
        result += v[i];
    }
    return result;
}

std::string replace(const std::string& src, char delim, const std::string& glue)
{
    return merge(split(src, delim), glue); 
}

直播是here