c++qtqchar

QChar get digit value if `isDigit()`


How to get the digits value elegantly?

QChar qc('4');
int val=-1;
if(qc.isDigit()){
   val = qc.toLatin1() - '0';
}

does not look that good.

Neither does converting to QString since creating a QString object and start parsing just for this purpose seems to be overkill.

QChar qc('4');
int val=-1;
if(qc.isDigit()){
   val = QString(qc).toInt();
}

Any better options or interfaces that I have missed?


Solution

  • There is a method int QChar::digitValue() const which:

    returns the numeric value of the digit, or -1 if the character is not a digit.

    So, you can write:

    QChar qc('4');
    int val = qc.digitValue();