2016-11-29 2 views
-3

zum Beispiel lässt man einen gerade eingegebenen Benutzer (2 + 3) mit cin >> string eingeben, wie können wir jetzt einfach alle Zeichen in der Zeichenfolge lesen und die Ganzzahlen in ein spezifisches Zeichen umwandeln, wie "i"Wie man jeden Integer in einem String auf ein bestimmtes Zeichen (C++) setzt

zum Beispiel, wenn der Benutzer 2 + 3 eingegeben hat; Wir drehen diese Zeichenfolge in i + i; ? jede Hilfe wird geschätzt!

ein weiteres Beispiel: (5 + 9) * 3 ---> (i + i) * i

+2

Wurde das nicht nur gefragt? – NathanOliver

+1

Überprüfen Sie [isdigit] (http://www.cplusplus.com/reference/cctype/isdigit/), __Return Value: Ein von Null verschiedener Wert (d. H. Wahr), wenn in der Tat c eine Dezimalziffer ist. Null (d. H. Falsch) andernfalls .__ –

Antwort

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; 

Es gibt Funktionen wie is_digit() die if ersetzen könnte, aber das ist ohne Bibliotheken usw.

0

Sie können einen regulären Ausdruck verwenden.

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

Falls Sie wünschen, 13+1 mit i+i ersetzt werden, anstatt ii+i, die leicht mit einer kleinen Änderung der regex erreicht werden kann.

Verwandte Themen