2016-11-29 101 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,可以用一個小改動,正則表達式可以輕鬆實現替代。

相關問題