例如让用户刚输入(2 + 3),使用cin >> string,现在我们如何才能读取字符串中的所有字符,并将整数转换为特定字符,如“i”如何将字符串中的每个整数转换为特定字符(C++)
例如,如果用户输入了2 + 3;我们把那个字符串变成i + i; ?任何帮助表示赞赏!
另一实例:(5 + 9)* 3 --->(I + I)* I
例如让用户刚输入(2 + 3),使用cin >> string,现在我们如何才能读取字符串中的所有字符,并将整数转换为特定字符,如“i”如何将字符串中的每个整数转换为特定字符(C++)
例如,如果用户输入了2 + 3;我们把那个字符串变成i + i; ?任何帮助表示赞赏!
另一实例:(5 + 9)* 3 --->(I + I)* I
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
,但是这是不使用任何库等。
您可以使用正则表达式。
std::regex expr(R"(\d)");
auto result = std::regex_replace(string, expr, "i");
如果你想13+1
与i+i
而不是ii+i
,可以用一个小改动,正则表达式可以轻松实现替代。
这是不是只是问? – NathanOliver
检查[isdigit](http://www.cplusplus.com/reference/cctype/isdigit/),__返回值:如果确实c是十进制数字,则返回一个与零不同的值(即true)。否则为零(即false).__ –