例如,假设用户刚刚输入(2 + 3),使用cin&gt;&gt;字符串,现在我们怎样才能读取字符串中的所有字符,并将整数转换为特定字符,如“i”< / p>
例如,如果用户输入2 + 3;我们把那个字符串变成i + i; ?任何帮助表示赞赏!
另一个例子:(5 + 9)* 3 ---&gt;(i + i)* i
答案 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
,则可以通过对正则表达式进行少量更改轻松实现。