Ich habe einen Algorithmus, der eine Zeichenfolge namens str
und überprüfen Sie es gegen eine bestimmte Regel definiert nehmen soll:prüft IX oder IV durch ein anderes Zeichen gefolgt werden
NICHTS nach IX oder IV kommt. Es wird legal gedruckt, wenn die Regel nicht gebrochen ist, und Illegal, wenn die Regel ungültig ist.
Hier ist mein Code, die ich geschaffen habe:
string str = "MXCIVXX";
int length = str.length();
bool legal = true;
for (int i = 0; i < length; i++) {
if ((str[i] == 'I' && str[i + 1] == 'X') && (str[i + 2] != '/0'))
legal = false;
if ((str[i] == 'I' && str[i + 1] == 'V') && (str[i + 2] != '/0'))
legal = false;
}
if (legal == true)
cout << "Legal" << endl;
else if (legal == false)
cout << "Illegal" << endl;
ich mehrere römische Ziffern in der Zeichenfolge getestet haben, aber es druckt legal, wenn IX durch ein anderes Zeichen in der Zeichenfolge folgt. Wie kann ich das beheben, um zu bestätigen, dass auf IX oder IV kein anderes Zeichen folgt?
„_NOTHING kommt nach IX oder IV .._“ definieren NICHTS, so dass Sie in Raum? Ende der Linie? keine anderen römischen Ziffern? –
Debuggen Sie es Schritt für Schritt und sehen Sie, warum das passiert. Das sollten Sie tun, wenn Ihr Programm nicht funktioniert. – user31264
Nichts als in keinem anderen Charakter ist, danach zu kommen. Die letzten 2 Zeichen sind entweder IX oder IV. –