2016-11-29 73 views
-3

例如让用户刚输入(2 + 3),使用cin >> string,现在我们如何才能读取字符串中的所有字符,并将整数转换为特定字符,如“i”如何将字符串中的每个整数转换为特定字符(C++)

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

另一实例:(5 + 9)* 3 --->(I + I)* I

+2

这是不是只是问? – NathanOliver

+1

检查[isdigit](http://www.cplusplus.com/reference/cctype/isdigit/),__返回值:如果确实c是十进制数字,则返回一个与零不同的值(即true)。否则为零(即false).__ –

回答

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,但是这是不使用任何库等。

0

您可以使用正则表达式。

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

如果你想13+1i+i而不是ii+i,可以用一个小改动,正则表达式可以轻松实现替代。