Search code examples
c++stringqtqstring

if QString contains a number


I want to know if a string contains a '1' or '0' so I wrote this code:

    if ((input.contains('0'))||(input.contains('1'))) {
        ui->answerbox->setText(QString::number(BinToDec(number)));
    }
    else {
        ui->answerbox->setText("Error");
    }

If I put in "014", it runs the if block but if I put "4" it runs the else block. What's wrong?


Solution

  • Man this function BinToDec is a total disaster.

    bool success;
    auto value = input.toInt(&success, 2);
    if (success) {
        ui->answerbox->setText(QString::number(value));
    }
    else {
        ui->answerbox->setText("Error");
    }