строка — C ++ Как заменить число на букву

ну, я хотел бы знать, как изменить номер на букву, я хотел бы заменить номер 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:

0

Решение

Может быть, вы можете попробовать что-то вроде этого

string stng;

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

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

cout << stng << endl;
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;
}
0

Вы можете разделить строку по разделителю '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);
}

Жить это Вот

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'
}

И ваша работа выполнена !!!

0
По вопросам рекламы [email protected]