例如讓用戶剛輸入(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).__ –