0

好吧,我想知道如何按字母更改数字,我想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'); 但是一旦我只能更改1for x,我就想替换 for:x:

4

4 回答 4

0

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

string stng;

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

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

cout << stng << endl;
于 2015-12-11T03:45:30.840 回答
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;
}
于 2015-12-11T04:52:08.060 回答
0

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

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

直播在这里

于 2015-12-11T07:46:48.927 回答
0

replace您可以使用 的成员函数更好地做到这一点std::string

auto pos = stng.find("1"); // search for 1 in the string
if (pos!=stng.npos)  // check if 1 is found
{
   stng.replace(pos, 1, ":x:");   // replace ":x:" starting from 'pos' to 'pos+1'
}

你的工作完成了!

于 2015-12-11T06:44:59.410 回答