如何将String中的每个整数转换为特定字符(c ++)

时间:2016-11-29 13:32:44

标签: c++

例如,假设用户刚刚输入(2 + 3),使用cin&gt;&gt;字符串,现在我们怎样才能读取字符串中的所有字符,并将整数转换为特定字符,如“i”< / p>

例如,如果用户输入2 + 3;我们把那个字符串变成i + i; ?任何帮助表示赞赏!

另一个例子:(5 + 9)* 3 ---&gt;(i + i)* i

2 个答案:

答案 0 :(得分:1)

string s;
cin >> s;

for(int i = 0; i < s.length(); i++) {  //iterate trough entire string
    if(s[i] >= '0' && s[i] <= '9')  //if its a number
        s[i] = 'i';  //replace it with 'i'
}

cout << s << endl;

is_digit()这样的函数可以替换if,但这不使用任何库等。

答案 1 :(得分:0)

您可以使用正则表达式。

std::regex expr(R"(\d)");
auto result = std::regex_replace(string, expr, "i");

如果您希望13+1替换为i+i而不是ii+i,则可以通过对正则表达式进行少量更改轻松实现。