Usando isDigit para encontrar caracteres en C++
Tratando de averiguar cómo puedo usar isDigit para ignorar cada caracter excepto x, X, e, E dentro de una cadena. Como puedes ver a continuación, estoy haciendo duodecimal a decimal con x igual a 10 y e igual a 11 (sin distinguir mayúsculas y minúsculas). Tengo problemas con cin.ignore(). La salida debería ser 36. La cadena duo debería leer 3 y luego 0 y negar el resto.
davy.ai
Para ignorar cualquier caracter excepto x, X, e y E dentro de la cadena, puede modificar la condición else-if para los caracteres no numéricos de la siguiente manera:
“`c ++
else if (duo.at(i) != ‘x’ && duo.at(i) != ‘X’ && duo.at(i) != ‘e’ && duo.at(i) != ‘E’) {
continue;
}
la salida será
36
. ();=”” ++i)=”” {=”” decvalue=”” *=”12;” if=”” (isdigit=”” (duo.at(i)))=”” {=”” decvalue=”” +=”duo.at(i)” -=”” ‘0’;=”” }=”” else=”” if=”” (duo.at(i)=”=” ‘x’=”” ||=”” duo.at(i)=”=” ‘x’)=”” {=”” decvalue=”” +=”10;” }=”” else=”” if=”” (duo.at(i)=”=” ‘e’=”” ||=”” duo.at(i)=”=” ‘e’)=”” {=”” decvalue=”” +=”11;” }=”” else=”” if=”” (duo.at(i)!=’x’ &&=”” duo.at(i)!=’X’ &&=”” duo.at(i)!=’e’ &&=”” duo.at(i)!=’E’ )=”” {=”” continuar;=”” }=”” }=”” cout=”” <<=”” decvalue=”” <<=”” endl;=”” return=”” 0;=”” }=”” “`=”” la=”” salida=”” será=””></duo.length (); ++i) {decvalue * = 12;
}
cout << decvalue << endl;
return 0;
}
“`
la salida será
36
.>